corrections du cours après la présentation

This commit is contained in:
gwen
2017-06-21 10:52:29 +02:00
parent 78cc7f12eb
commit 2ecd65ce3d
3 changed files with 35 additions and 10 deletions

View File

@ -58,11 +58,11 @@ Organisation modulaire
- identifier les sous-composants indépendants (rendre les programmes réutilisables)
- forcer l'abstraction (augmenter la sureté du programme)
modules chargés et modules importés
modules chargés et modules importés
--------------------------------------
Les modules susceptibles d'être chargés sont dans le :envvar:`PYTHONPATH`.
Mais comment peut-on savoir ou ils sont physiquement (sur le disque dur) ?
Mais comment peut-on savoir ou ils sont physiquement (sur le disque dur) ?
.. envvar:: `sys.modules`
@ -73,10 +73,10 @@ False
True
>>> sys.modules['twisted']
<module 'twisted' from '/usr/lib/python2.7/dist-packages/twisted/__init__.pyc'>
>>>
>>>
.. attention:: un module présent dans `sys.modules` n'est pas forcément importé
dans l'espace de nommage usuel. Il faut importer le module pour
.. attention:: un module présent dans `sys.modules` n'est pas forcément importé
dans l'espace de nommage usuel. Il faut importer le module pour
pouvoir l'utiliser.
>>> sys.modules['email']
@ -85,21 +85,35 @@ True
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'email' is not defined
>>>
>>>
Pour récupérer le chemin du module
.. code-block:: python
print(os.path.abspath(<module>.__file__))
Pour importer un module qui n'est pas dans le `sys.path`
.. code-block:: python
fch = open('/path/to/mymodule/custom.py', 'r')
my_module = imp.load_module('dhcp_custom', fch, '/path/to/mymodule.py', ('.py', 'U', 1))
Connaître la version d'un module
-------------------------------------
Exemple : le module ``datetime``
C'est suivant la version de python car c'est la librairie standard.
C'est suivant la version de python car c'est la librairie standard.
Sinon, en général il y a un attribut __version__
Sinon, en général il y a un attribut __version__
>>> import sqlalchemy
>>> sqlalchemy.__version__
'0.9.8'
>>>
>>>
Les méthodes spéciales