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.
 
 
 
 
 
 

116 lines
3.1 KiB

  1. Chapitre 11 - Introduction aux modules
  2. ======================================
  3. Un fichier = un module
  4. ------------------------
  5. Et oui, vous faites des modules sans le savoir depuis le début :)
  6. Un fichier `foo.py` correspond *toujours* module `foo`
  7. **Attention: Ce n'est pas tout à fait réciproque. Le module `foo` peut venir d'autre chose
  8. qu'un fichier foo.py.**
  9. Importer un module
  10. ------------------
  11. Ou: accéder à du code provenant d'un *autre* fichier source.
  12. Créons un fichier `bonjour.py` contenant seulement une assignation
  13. de l'entier 42 à la variable `a`::
  14. # Dans bonjour.py
  15. a = 42
  16. Comme un fichier = un module, on vient de crée un module ``bonjour`` contenant une variable ``a``.
  17. Si maintenant on crée un fichier ``salutations.py`` dans le même répertoire,
  18. on peut accéder à cette variable en *important* le module avec le mot-clé
  19. ``import``::
  20. # Dans salutations.py
  21. import bonjour
  22. print(bonjour.a)
  23. # affiche: 42
  24. .. note::
  25. Le nom du module est écrit directement, ce n'est *pas* une
  26. chaîne de caractères.
  27. On voit que la variable `a` dans `bonjour.py` est devenue
  28. un *attribut* du module `bonjour` lorsque `bonjour` a été importé
  29. Si maintenant on rajoute une fonction ``dire_bonjour`` dans ``bonjour.py``::
  30. # Dans bonjour.py
  31. a = 42
  32. def dire_bonjour():
  33. print("Bonjour!")
  34. On peut appeler la fonction ``dire_bonjour`` depuis ``salutations.py``
  35. en utilisant l'attribut ``dire_bonjour`` du module ``bonjour``::
  36. # Dans salutations.py
  37. import bonjour
  38. bonjour.dire_bonjour()
  39. # affiche: Bonjour!
  40. Les imports ne sont faits qu'une seule fois
  41. -------------------------------------------
  42. Il est important de noter que:
  43. * **tout** le code à l'intérieur d'un module est éxécuté lors du premier import
  44. * mais il n'est *pas* ré-éxécuté si le module a déjà été importé auparavant.
  45. On peut le voir en mettant du code dans `bonjour.py`,
  46. en plus des simples définitions de fonctions et de créations
  47. de variables::
  48. # Dans bonjour.py
  49. print("Je suis le module bonjour et tu viens de m’importer")
  50. def dire_bonjour():
  51. ....
  52. .. code-block:: python
  53. # Dans salutation.py
  54. import bonjour
  55. # affiche: Je suis le module bonjour et tu viens de m’importer
  56. import bojour
  57. # n'affiche rien
  58. La bibliothèque standard
  59. ------------------------
  60. La bibliothèque standard est une collection de modules directement utilisables fournis à l'installation de Python.
  61. Exemple: ``sys``, ``random``, ...
  62. Toute la bibliothèque standard est documentée - et la traduction en Français est en cours:
  63. https://docs.python.org/fr/3/library/index.html
  64. Mettez ce lien dans vos favoris - il vous sera très utile.
  65. Quelques exemples de modules de la bibliothèque standard
  66. ---------------------------------------------------------
  67. Easter eggs
  68. ++++++++++++
  69. (Ou fonctionnalités cachées)
  70. * ``import antigravity``
  71. * ``import this``
  72. Je vous laisse découvrir ce que fait le premier. Quant au deuxième, il contient
  73. une liste de préceptes que la plupart des développeurs Python s'efforcent de
  74. respecter. On en reparlera ...