From 8a8d2c1d5214d47e0038b7c071614b52b60e3fb5 Mon Sep 17 00:00:00 2001 From: gwen Date: Tue, 5 May 2015 15:00:47 +0200 Subject: [PATCH] ajout des imports et de sys.modules --- python/formation/index.txt | 4 +-- python/formation/specialmethods.txt | 46 +++++++++++++++++++++++++++++ python/formation/type.txt | 2 +- 3 files changed, 49 insertions(+), 3 deletions(-) diff --git a/python/formation/index.txt b/python/formation/index.txt index 640f76b..594638c 100644 --- a/python/formation/index.txt +++ b/python/formation/index.txt @@ -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 diff --git a/python/formation/specialmethods.txt b/python/formation/specialmethods.txt index ed5a54d..a80616b 100644 --- a/python/formation/specialmethods.txt +++ b/python/formation/specialmethods.txt @@ -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'] + +>>> + +.. 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'] + +>>> dir(email) +Traceback (most recent call last): + File "", line 1, in +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 ----------------------- diff --git a/python/formation/type.txt b/python/formation/type.txt index 5cd4871..9c84e31 100644 --- a/python/formation/type.txt +++ b/python/formation/type.txt @@ -173,7 +173,7 @@ ordinal not in range(128) >>> - # il faut utiliser .encode(), et pas .decode()... +Il faut utiliser ``.encode()``, et pas ``.decode()``:: if type(s) == unicode #types.UnicodeType: bla bla