|
- Rappels
- =======
-
- // TODO: drop?
-
- .. note::
-
- ceci est surtout un rappel du chapitre 11. N'hésitez pas à vous y
- reporter si les exemples de code ne vous paraissent pas clairs.
-
-
- Classes vides
- -------------
-
- Définition::
-
- class MaClasse:
- pass
-
- Instanciation::
-
- instance_1 = MaClasse()
-
- Attributs
- ---------
-
- Un attribut est une variable *à l'intérieur* d'autre chose (par exemple une instance de classe).
-
- La syntaxe consiste en l'instance à gauche et l'attribut à droite après un point::
-
- >>> mon_instance = MaClasse()
- # création de l'attribut `x` dans mon_instance:
- >>> mon_instance.x = 42
- # accès à l'attribut `x` dans mon_instance:
- >>> mon_instance.x
- 42
-
- Méthodes
- --------
-
- Une méthode est une fonction définie à l'intérieur d'une classe:
-
- Définition::
-
- class MaClasse:
- def ma_méthode(self):
- return 42
-
- Les méthodes sont des attributs des instances de classes::
-
- class MaClasse:
- def ma_méthode(self):
- return 42
- >>> ma_méthode()
- Erreur
- >>> mon_instance = MaClasse()
- >>> mon_instance.ma_méthode()
- 42
-
-
- self
- ----
-
- `self` *prend la valeur de l'instance courante* quand la méthode est appelée.::
-
- class MaClasse:
- def affiche_attribut_x(self):
- print(self.x)
-
- >>> mon_instance = MaClasse()
- >>> mon_instance.x = 42
- >>> mon_instance.affiche_attribut_x()
- 42
-
- On peut aussi *créer* des attributs dans une méthode::
-
- class MaClasse:
- def crée_attribut_x(self):
- self.x = 42
- def affiche_attribut_x(self):
- print(self.x)
-
- >>> mon_instance = MaClasse()
- >>> mon_instance.affiche_attribut_x()
- # Erreur: `mon_instance` n'a pas d'attribut `x`
-
- >>> mon_instance.crée_attribut_x()
- >>> mon_instance.affiche_attribut_x()
- 42
-
- Méthodes avec arguments
- ------------------------
-
- .. code-block::
-
- class MaClasse
- def crée_attribut_x(self, valeur_de_x):
- self.x = valeur_de_x
-
- def affiche_attribut_x(self);
- print(self.x)
-
- >>> mon_instance = MaClasse()
- >>> mon_instance.crée_attribut_x(42)
- >>> mon_instance.affiche_attribut_x()
- 42
-
- Méthodes appelant d'autres méthodes
- ------------------------------------
-
- .. code-block::
-
- class MaClasse:
- def méthode_1(self):
- print("démarrage de la méthode 1")
- print("la méthode 1 affiche bonjour")
- print("bonjour")
- print("fin de la méthode 1")
-
-
- def méthode_2(self):
- print("la méthode 2 appelle la méthode 1")
- self.méthode_1()
- print("fin de la méthode 2")
-
-
- >>> mon_instance = MaClasse()
- >>> mon_instance.méthode_2()
-
- .. code-block::
-
- la méthode 2 appelle la méthode 1
- démarrage de la méthode 1
- la méthode 1 affiche bonjour
- bonjour
- fin de la méthode 1
- fin de la méthode 2
-
- Constructeur sans arguments
- ---------------------------
-
- Un constructeur en Python désigne la méthode nomée ``__init__``,
- quand celle-ci existe.
-
- La méthode ``__init__`` est appelée automatiquement quand la
- classe est instanciée::
-
- class MaClasse:
- def __init__(self):
- self.x = 1
- self.y = 2
-
- >>> mon_instance = MaClasse()
- >>> mon_instance.x
- 1
- >>> mon_instance.y
- 2
-
- Constructeur avec arguments
- ----------------------------
-
- La méthode ``__init__`` peut avoir des arguments,
- dans ce cas, ceux ci doivent être fournis
- lors de l'instanciation::
-
- class MaClasse:
- def __init__(self, x, y):
- self.x = x
- self.y = y
-
- >>> mon_instance = MaClasse(3, 4)
- >>> mon_instance.x
- 3
-
- >>> mon_instance.y
- 4
|