您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符
此仓库已存档。您可以查看文件和克隆,但不能推送或创建工单/合并请求。

python-S02-E06.md 2.6 KiB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167
  1. % Programmation avec Python (chapitre 6)
  2. % Dimitri Merejkowsky
  3. #
  4. \center \huge Rappels sur les classes
  5. # Classes vides
  6. Définition:
  7. ```python
  8. class MonObjet:
  9. pass
  10. ```
  11. Instanciation:
  12. ```python
  13. >>> objet_1 = MonObjet()
  14. ```
  15. # Attributs
  16. ```python
  17. >>> mon_instance = MonObjet()
  18. >>> mon_instance.x = 42
  19. >>> mon_instance.mon_attribut
  20. 42
  21. ```
  22. # Méthodes
  23. Définition:
  24. ```python
  25. class MonObjet:
  26. def ma_méthode(self):
  27. return 42
  28. ```
  29. Appel:
  30. ```python
  31. class MonObjet:
  32. def ma_méthode(self):
  33. return 42
  34. >>> ma_méthode()
  35. Erreur
  36. >>> mon_instance = MonObjet()
  37. >>> mon_instance.ma_méthode()
  38. 42
  39. ```
  40. # self - 1
  41. `self` *prend la valeur de l'instance courante* quand la méthode est appelée.
  42. ```python
  43. class MonObjet:
  44. def affiche_attribut_x(self):
  45. print(self.x)
  46. >>> mon_instance = MonObjet()
  47. >>> mon_instance.x = 42
  48. >>> mon_instance.affiche_attribut_x()
  49. 42
  50. ```
  51. # self - 2
  52. On peut aussi *créer* des attributs dans une méthode:
  53. ```python
  54. class MonObjet:
  55. def crée_attribut_x(self):
  56. self.x = 42
  57. def affiche_attribut_x(self):
  58. print(self.x)
  59. >>> mon_instance = MonObjet()
  60. >>> mon_instance.affiche_attribut_x()
  61. # Erreur: `mon_instance` n'a pas d'attribut `x`
  62. >>> mon_instance.crée_attribut_x()
  63. >>> mon_instance.affiche_attribut_x()
  64. 42
  65. ```
  66. # Méthodes avec arguments
  67. ```python
  68. class MonObjet
  69. def crée_attribut_x(self, valeur_de_x):
  70. self.x = valeur_de_x
  71. def affiche_attribut_x(self);
  72. print(self.x)
  73. >>> mon_instance = MonObjet()
  74. >>> mon_instance.crée_attribut_x(42)
  75. >>> mon_instance.affiche_attribut_x()
  76. 42
  77. ```
  78. # Méthodes appelant d'autres méthodes - 1
  79. ```python
  80. class MonObjet:
  81. def méthode_1(self):
  82. print("démarrage de la méthode 1")
  83. print("la méthode 1 affiche bonjour")
  84. print("bonjour")
  85. print("fin de la méthode 1")
  86. def méthode_2(self):
  87. print("la méthode 2 appelle la méthode 1")
  88. self.méthode_1()
  89. print("fin de la méthode 2")
  90. ```
  91. # Méthodes appelant d'autres méthodes - 2
  92. ```python
  93. >>> mon_instance = MonObjet()
  94. >>> mon_instance.méthode_2()
  95. ```
  96. ```text
  97. la méthode 2 appelle la méthode 1
  98. démarrage de la méthode 1
  99. la méthode 1 affiche bonjour
  100. bonjour
  101. fin de la méthode 1
  102. fin de la méthode 2
  103. ```
  104. # Constructeur sans arguments
  105. ```python
  106. class MonObjet:
  107. def __init__(self):
  108. self.x = 1
  109. self.y = 2
  110. >>> mon_instance = MonObjet()
  111. >>> mon_instance.x
  112. 1
  113. >>> mon_instance.y
  114. 2
  115. ```
  116. # Constructeur avec arguments
  117. ```python
  118. class MonObjet:
  119. def __init__(self, x, y):
  120. self.x = x
  121. self.y = y
  122. ```
  123. ```
  124. >>> mon_instance = MonObjet(3, 4)
  125. >>> mon_instance.x
  126. 3
  127. >>> mon_instance.y
  128. 4
  129. ```