+++ title = “Modules” weight = 1 +++
Et oui, vous faites des modules sans le savoir depuis le début :)
Un fichier foo.py
correspond toujours module foo
Attention: Ce n’est pas tout à fait réciproque. Le module foo
peut venir d’autre chose
qu’un fichier foo.py.
Ou: accéder à du code provenant d’un autre fichier source.
Imaginons un fichier bonjour.py
contenant seulement une assignation
d’une variable a
à l’entier 42 :
# Dans bonjour.py
a = 42
On peut accéder à cette variable en important le module, par
exemple depuis l’interpréteur, en utilisant le mot-clé import
suivi du nom du module:
$ python
>>> import bonjour
>>> bonjour.a
42
Notez que pour que cela fonctionne:
python
sans argumentbonjour.py
.On voit que l’assignation de la variable a
dans bonjour.py
est devenue
un attribut du module bonjour
lorsque bonjour
a été importé
\newpage
Si maintenant on rajoute une fonction dire_bonjour
dans bonjour.py
:
# toujours dans bonjour.py
a = 42
def dire_bonjour():
print("Bonjour!")
On peut appeler la fonction dire_bonjour
depuis l’interpréteur en accédant
à l’attribut dire_bonjour
du module bonjour
:
>>> import bonjour
>>> bonjour.dire_bonjour()
Bonjour!
Notez bien que lancer l’interpréteur et taper import bonjour
dedans n’est pas
la même chose que lancer python bonjour.py
.
Dans le deuxième cas, tout le code dans bonjour.py
est exécuté, puis la commande python
se termine.
Dans le cas de l’interpréteur, on peut utiliser tous les attributs du module et appeler les fonctions autant de fois qu’on veut:
>>> import bonjour
>>> bonjour.dire_bonjour()
Bonjour!
>>> bonjour.dire_bonjour()
Bonjour!
On peut aussi modifier les valeurs des attributs:
>>> import bonjour
>>> bonjour.a
42
>>> bonjour.a = 36
>>> bonjour.a
36
Il est important de noter que le code à l’intérieur d’un module n’est pas ré-éxécuté si le module a déjà été importé auparavant.
On peut le voir en mettant du code dans bonjour.py
,
en plus des simples définitions de fonctions et assignations
de variables
# Dans bonjour.py
print("Je suis le module bonjour et tu viens de m’importer")
>>> import bonjour
Je suis le module foo et tu viens de m’importer
>>> import bonjour
<rien>
Il faudra donc redémarrer l’interpréteur à chaque fois que le code dans bonjour.py
change.
La bibliothèque standard est une collection de modules directement utilisables fournis à l’installation de Python.
Exemple: sys
, random
, ...
Toute la bibliothèque standard est documentée - et la traduction en Français est en cours:
https://docs.python.org/fr/3/library/index.html
Mettez ce lien dans vos favoris - il vous sera très utile.
(Ou fonctionnalités cachées)
import antigravity
import this
Je vous laisse découvrir ce que fait le premier. Quant au deuxième, il contient une liste de préceptes que la plupart des développeurs Python s’efforcent de respecter. On en reparlera ...