Nie możesz wybrać więcej, niż 25 tematów Tematy muszą się zaczynać od litery lub cyfry, mogą zawierać myślniki ('-') i mogą mieć do 35 znaków.
To repozytorium jest zarchiwizowane. Możesz wyświetlać pliki i je sklonować, ale nie możesz do niego przepychać zmian lub otwierać zgłoszeń/Pull Requestów.

modules-01.md 3.5 KiB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144
  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, en utilisant le mot-clé `import`
  18. suivi du nom du module:
  19. ```python
  20. $ python
  21. >>> import bonjour
  22. >>> bonjour.a
  23. 42
  24. ```
  25. Notez que pour que cela fonctionne:
  26. * Le nom du module est écrit directement, ce n'est *pas* une
  27. chaîne de caractères.
  28. * Il faut lancer la commande `python` sans argument
  29. * Il faut la lancer depuis le répertoire qui contient `bonjour.py`.
  30. On voit que l'assignation de la variable `a` dans `bonjour.py` est devenue
  31. un *attribut* du module `bonjour` lorsque `bonjour` a été importé
  32. \newpage
  33. Si maintenant on rajoute une fonction `dire_bonjour` dans `bonjour.py`:
  34. ```python
  35. # toujours dans bonjour.py
  36. a = 42
  37. def dire_bonjour():
  38. print("Bonjour!")
  39. ```
  40. On peut appeler la fonction `dire_bonjour` depuis l'interpréteur en accédant
  41. à l'attribut `dire_bonjour` du module `bonjour`:
  42. ```python
  43. >>> import bonjour
  44. >>> bonjour.dire_bonjour()
  45. Bonjour!
  46. ```
  47. # Différence avec la commande python
  48. Notez bien que lancer l'interpréteur et taper `import bonjour` dedans n'est pas
  49. la même chose que lancer `python bonjour.py`.
  50. Dans le deuxième cas, tout le code dans `bonjour.py` est exécuté, puis la commande python
  51. se termine.
  52. Dans le cas de l'interpréteur, on peut utiliser tous les attributs du module et appeler
  53. les fonctions autant de fois qu'on veut:
  54. ```python
  55. >>> import bonjour
  56. >>> bonjour.dire_bonjour()
  57. Bonjour!
  58. >>> bonjour.dire_bonjour()
  59. Bonjour!
  60. ```
  61. On peut aussi modifier les valeurs des attributs:
  62. ```python
  63. >>> import bonjour
  64. >>> bonjour.a
  65. 42
  66. >>> bonjour.a = 36
  67. >>> bonjour.a
  68. 36
  69. ```
  70. # Les imports ne sont faits qu'une seule fois
  71. Il est important de noter que le code à l'intérieur d'un
  72. module n'est *pas* ré-éxécuté si le module a déjà été
  73. importé auparavant.
  74. On peut le voir en mettant du code dans `bonjour.py`,
  75. en plus des simples définitions de fonctions et assignations
  76. de variables
  77. ```python
  78. # Dans bonjour.py
  79. print("Je suis le module bonjour et tu viens de m’importer")
  80. ```
  81. ```python
  82. >>> import bonjour
  83. Je suis le module foo et tu viens de m’importer
  84. >>> import bonjour
  85. <rien>
  86. ```
  87. Il faudra donc redémarrer l'interpréteur à chaque fois que le code dans `bonjour.py` change.
  88. # La bibliothèque standard
  89. La bibliothèque standard est une collection de modules directement utilisables fournis à l'installation de Python.
  90. Exemple: `sys`, `random`, ...
  91. Toute la bibliothèque standard est documentée - et la traduction en Français est en cours:
  92. https://docs.python.org/fr/3/library/index.html
  93. Mettez ce lien dans vos favoris - il vous sera très utile.
  94. # Quelques exemples de modules de la bibliothèque standard
  95. ## Easter eggs
  96. (Ou fonctionnalités cachées)
  97. * `import antigravity`
  98. * `import this`
  99. Je vous laisse découvrir ce que fait le premier. Quant au deuxième, il contient
  100. une liste de préceptes que la plupart des développeurs Python s'efforcent de
  101. respecter. On en reparlera ...