You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
This repo is archived. You can view files and clone it, but cannot push or open issues/pull-requests.

e2l-python-modules-01.md 3.0 KiB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127
  1. % Les modules en Python - Partie 1
  2. % Dimitri Merejkowsky
  3. # Un fichier = un module
  4. Et oui, vous faites des modules sans le savoir depuis le début :)
  5. Un fichier `foo.py` correspond *toujours* module `foo`
  6. **Attention: Ce n'est pas tout à fait réciproque. Le module `foo` peut venir d'autre chose
  7. qu'un fichier foo.py.**
  8. # Importer un module
  9. Ou: accéder à du code provenant d'un *autre* fichier source.
  10. Imaginons un fichier `bonjour.py` contenant seulement une assignation
  11. d'une variable `a` à l'entier 42 :
  12. ```python
  13. # Dans bonjour.py
  14. a = 42
  15. ```
  16. On peut accéder à cette variable en important le module, par
  17. exemple depuis l'interpréteur:
  18. ```python
  19. >>> import bonjour
  20. >>> bonjour.a
  21. 42
  22. ```
  23. Notez que pour que cela fonctionne:
  24. * Il faut lancer la commande `python` sans argument
  25. * Il faut la lancer depuis le répertoire qui contient `bonjour.py`.
  26. On voit que l'assignation de la variable `a` dans `bonjour.py` est devenue
  27. un *attribut* du module `bonjour` lorsque `bonjour` a été importé
  28. \newpage
  29. Si maintenant on rajoute une fonction `dire_bonjour` dans `bonjour.py`:
  30. ```python
  31. # toujours dans bonjour.py
  32. a = 42
  33. def dire_bonjour():
  34. print("Bonjour!")
  35. ```
  36. On peut appeler la fonction `dire_bonjour` depuis l'interpréteur en accédant
  37. à l'attribut `dire_bonjour` du module `bonjour`:
  38. ```python
  39. >>> import bonjour
  40. >>> bonjour.dire_bonjour()
  41. Bonjour!
  42. ```
  43. # Différence avec la commande python
  44. Notez bien que lancer l'interpréteur et taper `import bonjour` dedans n'est pas
  45. la même chose que lancer `python bonjour.py`.
  46. Dans le deuxième cas, tout le code dans `bonjour.py` est exécuté, puis la commande python
  47. se termine.
  48. Dans le cas de l'interpréteur, on peut utiliser tous les attributs du module et appeler
  49. les fonctions autant de fois qu'on veut:
  50. ```python
  51. >>> import bonjour
  52. >>> bonjour.dire_bonjour()
  53. Bonjour!
  54. >>> bonjour.dire_bonjour()
  55. Bonjour!
  56. ```
  57. On peut aussi modifier les valeurs des attributs:
  58. ```python
  59. >>> import bonjour
  60. >>> bonjour.a
  61. 42
  62. >>> bonjour.a = 36
  63. >>> bonjour.a
  64. 36
  65. ```
  66. # Les imports ne sont faits qu'une seule fois
  67. Il est important de noter que le code à l'intérieur d'un
  68. module n'est *pas* ré-éxécuté si le module a déjà été
  69. importé auparavant.
  70. On peut le voir en mettant du code dans `bonjour.py`,
  71. en plus des simples définitions de fonctions et assignations
  72. de variables
  73. ```python
  74. # Dans bonjour.py
  75. print("Je suis le module bonjour et tu viens de m’importer")
  76. ```
  77. ```python
  78. >>> import bonjour
  79. Je suis le module foo et tu viens de m’importer
  80. >>> import bonjour
  81. <rien>
  82. ```
  83. Il faudra donc redémarrer l'interpréteur à chaque fois que le code dans `bonjour.py` change.
  84. # La bibliothèque standard
  85. La bibliothèque standard est une collection de modules directement utilisables fournis à l'installation de Python.
  86. Exemple: `sys`, `random`, ...
  87. Toute la bibliothèque standard est documentée - et en Français depuis peu:
  88. https://docs.python.org/fr/3/library/index.html
  89. Mettez ce lien dans vos favoris - il vous sera très utile.