25개 이상의 토픽을 선택하실 수 없습니다. 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 2.8 KiB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120
  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. On voit que l'assignation de la variable `a` dans `bonjour.py` est devenue
  24. un *attribut* du module `bonjour` lorsque `bonjour` a été importé
  25. Si maintenant on rajoute une fonction `dire_bonjour` dans `bonjour.py`:
  26. ```python
  27. # toujours dans bonjour.py
  28. a = 42
  29. a = 42
  30. def dire_bonjour():
  31. print("Bonjour!")
  32. ```
  33. On peut appeler la fonction `dire_bonjour` depuis l'interpréteur en accédant
  34. à l'attribut `dire_bonjour` du module `bonjour`:
  35. ```python
  36. >>> import bonjour
  37. >>> bonjour.dire_bonjour()
  38. Bonjour!
  39. ```
  40. # Différence avec la commande python
  41. Notez bien que lancer l'interpréteur et taper `import bonjour` dedans n'est pas
  42. la même chose que lancer `python bonjour.py`.
  43. Dans le deuxième cas, tout le code dans `bonjour.py` est exécuté, puis la commande python
  44. se termine.
  45. Dans le cas de l'interpréteur, on peut utiliser tous les attributs du module et appeler
  46. les fonctions autant de fois qu'on veut:
  47. ```python
  48. >>> import bonjour
  49. >>> bonjour.dire_bonjour()
  50. Bonjour!
  51. >>> bonjour.dire_bonjour()
  52. Bonjour!
  53. ```
  54. On peut aussi modifier les valeurs des attributs:
  55. ```python
  56. >>> import bonjour
  57. >>> bonjour.a
  58. 42
  59. >>> bonjour.a = 36
  60. >>> bonjour.a
  61. 36
  62. ```
  63. # Les imports ne sont faits qu'une seule fois
  64. Il est important de noter que le code à l'intérieur d'un
  65. module n'est *pas* ré-éxécuté si le module a déjà été
  66. importé auparavant.
  67. On peut le voir en mettant du code dans `bonjour.py`,
  68. en plus des simples définitions de fonctions et assignations
  69. de variables
  70. ```python
  71. # Dans bonjour.py
  72. print("Je suis le module bonjour et tu viens de m’importer")
  73. ```
  74. ```python
  75. >>> import bonjour
  76. Je suis le module foo et tu viens de m’importer
  77. >>> import bonjour
  78. <rien>
  79. ```
  80. Il faudra donc redémarrer l'interpréteur à chaque fois que le code dans `bonjour.py` change.
  81. # La bibliothèque standard
  82. La bibliothèque standard est une collection de modules directement utilisables fournis à l'installation de Python.
  83. Exemple: `sys`, `random`, ...
  84. Toute la bibliothèque standard est documentée - et en Français depuis peu:
  85. https://docs.python.org/fr/3/library/index.html
  86. Mettez ce lien dans vos favoris - il vous sera très utile.