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.

преди 4 години
преди 4 години
преди 4 години
преди 4 години
преди 4 години
преди 4 години
преди 4 години
преди 4 години
преди 4 години
преди 4 години
преди 4 години
преди 4 години
преди 4 години
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114
  1. Chapitre 12 - Modules - 1ère partie
  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. d'une variable `a` à l'entier 42 ::
  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::
  19. # Dans salutations.py
  20. import bonjour
  21. print(bonjour.a)
  22. # affiche: 42
  23. .. note::
  24. Le nom du module est écrit directement, ce n'est *pas* une
  25. chaîne de caractères.
  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. Si maintenant on rajoute une fonction ``dire_bonjour`` dans ``bonjour.py``::
  29. # Dans bonjour.py
  30. a = 42
  31. def dire_bonjour():
  32. print("Bonjour!")
  33. On peut appeler la fonction ``dire_bonjour`` depuis ``salutations.py``
  34. en utilisant l'attribut ``dire_bonjour`` du module ``bonjour``::
  35. # Dans salutations.py
  36. import bonjour
  37. bonjour.dire_bonjour()
  38. # affiche: Bonjour!
  39. Les imports ne sont faits qu'une seule fois
  40. -------------------------------------------
  41. Il est important de noter que:
  42. * **tout** le code à l'intérieur d'un module est éxécuté lors du premier import
  43. * mais il n'est *pas* ré-éxécuté si le module a déjà été importé auparavant.
  44. On peut le voir en mettant du code dans `bonjour.py`,
  45. en plus des simples définitions de fonctions et assignations
  46. de variables::
  47. # Dans bonjour.py
  48. print("Je suis le module bonjour et tu viens de m’importer")
  49. def dire_bonjour():
  50. ....
  51. .. code-block:: python
  52. # Dans salutation.py
  53. import bonjour
  54. # affiche: Je suis le module bonjour et tu viens de m’importer
  55. import bojour
  56. # n'affiche rien
  57. La bibliothèque standard
  58. ------------------------
  59. La bibliothèque standard est une collection de modules directement utilisables fournis à l'installation de Python.
  60. Exemple: ``sys``, ``random``, ...
  61. Toute la bibliothèque standard est documentée - et la traduction en Français est en cours:
  62. https://docs.python.org/fr/3/library/index.html
  63. Mettez ce lien dans vos favoris - il vous sera très utile.
  64. Quelques exemples de modules de la bibliothèque standard
  65. ---------------------------------------------------------
  66. Easter eggs
  67. ++++++++++++
  68. (Ou fonctionnalités cachées)
  69. * ``import antigravity``
  70. * ``import this``
  71. Je vous laisse découvrir ce que fait le premier. Quant au deuxième, il contient
  72. une liste de préceptes que la plupart des développeurs Python s'efforcent de
  73. respecter. On en reparlera ...