ajout des imports et de sys.modules
This commit is contained in:
parent
f52d023781
commit
239097238e
|
@ -3,7 +3,7 @@ Apprentissage de la programmation avec python
|
|||
----------------------------------------------
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 1
|
||||
:maxdepth: 2
|
||||
|
||||
getting-started
|
||||
settings
|
||||
|
@ -16,7 +16,7 @@ Programmation python, connaissances de base
|
|||
--------------------------------------------
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 1
|
||||
:maxdepth: 2
|
||||
|
||||
classes
|
||||
prompt
|
||||
|
|
|
@ -6,6 +6,8 @@ Programmation python courante
|
|||
les espaces de nommage
|
||||
-----------------------
|
||||
|
||||
L'espace de nommage le plus courant est l'organisation en modules et en packages.
|
||||
|
||||
Packages et modules::
|
||||
|
||||
package/
|
||||
|
@ -56,6 +58,50 @@ 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
|
||||
--------------------------------------
|
||||
|
||||
Les modules susceptibles d'être chargés sont dans le :envvar:`PYTHNONPATH`.
|
||||
Mais comment peut-on savoir ou ils sont physiquement (sur le disque dur) ?
|
||||
|
||||
.. envvar:: `sys.modules`
|
||||
|
||||
>>> 'twisted' in sys.modules
|
||||
False
|
||||
>>> import twisted
|
||||
>>> 'twisted' in sys.modules
|
||||
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
|
||||
pouvoir l'utiliser.
|
||||
|
||||
>>> sys.modules['email']
|
||||
<module 'email' from '/usr/lib/python2.7/email/__init__.pyc'>
|
||||
>>> dir(email)
|
||||
Traceback (most recent call last):
|
||||
File "<stdin>", line 1, in <module>
|
||||
NameError: name 'email' is not defined
|
||||
>>>
|
||||
|
||||
Connaître la version d'un module
|
||||
-------------------------------------
|
||||
|
||||
Exemple : le module ``datetime``
|
||||
|
||||
C'est suivant la version de python car c'est la librairie standard.
|
||||
|
||||
Sinon, en général il y a un attribut __version__
|
||||
|
||||
>>> import sqlalchemy
|
||||
>>> sqlalchemy.__version__
|
||||
'0.9.8'
|
||||
>>>
|
||||
|
||||
|
||||
Les méthodes spéciales
|
||||
-----------------------
|
||||
|
||||
|
|
|
@ -173,7 +173,7 @@ ordinal not in range(128)
|
|||
<type 'str'>
|
||||
>>>
|
||||
|
||||
# il faut utiliser .encode(), et pas .decode()...
|
||||
Il faut utiliser ``.encode()``, et pas ``.decode()``::
|
||||
|
||||
if type(s) == unicode #types.UnicodeType:
|
||||
bla bla
|
||||
|
|
Loading…
Reference in New Issue