Ви не можете вибрати більше 25 тем Теми мають розпочинатися з літери або цифри, можуть містити дефіси (-) і не повинні перевищувати 35 символів.
Це архівний репозитарій. Ви можете переглядати і клонувати файли, але не можете робити пуш або відкривати питання/запити.

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186
  1. +++
  2. title = "Rappels"
  3. weight = 1
  4. +++
  5. # Rappels
  6. _Note: ceci est surtout un rappel du chapitre 11. N'hésitez pas à vous y
  7. reporter si les exemples de code ne vous paraissent pas clairs._
  8. ## Classes vides
  9. Définition:
  10. ```python
  11. class MaClasse:
  12. pass
  13. ```
  14. Instanciation:
  15. ```python
  16. >>> instance_1 = MaClasse()
  17. ```
  18. ## Attributs
  19. Un attribut est une variable _à l'intérieur_ d'autre chose (par exemple une instance de classe).
  20. La syntaxe consiste en l'instance à gauche et l'attribut à droite après un point:
  21. ```python
  22. >>> mon_instance = MaClasse()
  23. # création de l'attribut `x` dans mon_instance:
  24. >>> mon_instance.x = 42
  25. # accès à l'attribut `x` dans mon_instance:
  26. >>> mon_instance.x
  27. 42
  28. ```
  29. ## Méthodes
  30. Une méthode est une fonction définie à l'intérieur d'une classe:
  31. Définition:
  32. ```python
  33. class MaClasse:
  34. def ma_méthode(self):
  35. return 42
  36. ```
  37. Les méthodes sont des attributs des instances de classes:
  38. ```python
  39. class MaClasse:
  40. def ma_méthode(self):
  41. return 42
  42. >>> ma_méthode()
  43. Erreur
  44. >>> mon_instance = MaClasse()
  45. >>> mon_instance.ma_méthode()
  46. 42
  47. ```
  48. ## self
  49. `self` *prend la valeur de l'instance courante* quand la méthode est appelée.
  50. ```python
  51. class MaClasse:
  52. def affiche_attribut_x(self):
  53. print(self.x)
  54. >>> mon_instance = MaClasse()
  55. >>> mon_instance.x = 42
  56. >>> mon_instance.affiche_attribut_x()
  57. 42
  58. ```
  59. On peut aussi *créer* des attributs dans une méthode:
  60. ```python
  61. class MaClasse:
  62. def crée_attribut_x(self):
  63. self.x = 42
  64. def affiche_attribut_x(self):
  65. print(self.x)
  66. >>> mon_instance = MaClasse()
  67. >>> mon_instance.affiche_attribut_x()
  68. # Erreur: `mon_instance` n'a pas d'attribut `x`
  69. >>> mon_instance.crée_attribut_x()
  70. >>> mon_instance.affiche_attribut_x()
  71. 42
  72. ```
  73. ## Méthodes avec arguments
  74. ```python
  75. class MaClasse
  76. def crée_attribut_x(self, valeur_de_x):
  77. self.x = valeur_de_x
  78. def affiche_attribut_x(self);
  79. print(self.x)
  80. >>> mon_instance = MaClasse()
  81. >>> mon_instance.crée_attribut_x(42)
  82. >>> mon_instance.affiche_attribut_x()
  83. 42
  84. ```
  85. ## Méthodes appelant d'autres méthodes
  86. ```python
  87. class MaClasse:
  88. def méthode_1(self):
  89. print("démarrage de la méthode 1")
  90. print("la méthode 1 affiche bonjour")
  91. print("bonjour")
  92. print("fin de la méthode 1")
  93. def méthode_2(self):
  94. print("la méthode 2 appelle la méthode 1")
  95. self.méthode_1()
  96. print("fin de la méthode 2")
  97. ```
  98. ```python
  99. >>> mon_instance = MaClasse()
  100. >>> mon_instance.méthode_2()
  101. ```
  102. ```text
  103. la méthode 2 appelle la méthode 1
  104. démarrage de la méthode 1
  105. la méthode 1 affiche bonjour
  106. bonjour
  107. fin de la méthode 1
  108. fin de la méthode 2
  109. ```
  110. ## Constructeur sans arguments
  111. Un constructeur en Python désigne la méthode nomée `__init__`,
  112. quand celle-ci existe.
  113. La méthode `__init__` est appelée automatiquement quand la
  114. classe est instanciée:
  115. ```python
  116. class MaClasse:
  117. def __init__(self):
  118. self.x = 1
  119. self.y = 2
  120. >>> mon_instance = MaClasse()
  121. >>> mon_instance.x
  122. 1
  123. >>> mon_instance.y
  124. 2
  125. ```
  126. ## Constructeur avec arguments
  127. La méthode `__init__` peut avoir des arguments,
  128. dans ce cas, ceux ci doivent être fournis
  129. lors de l'instanciation:
  130. ```python
  131. class MaClasse:
  132. def __init__(self, x, y):
  133. self.x = x
  134. self.y = y
  135. ```
  136. ```python
  137. >>> mon_instance = MaClasse(3, 4)
  138. >>> mon_instance.x
  139. 3
  140. >>> mon_instance.y
  141. 4
  142. ```