La fiche du joueur
Un club de foot garde une fiche pour chaque joueur. Sur chaque fiche : le nom et le nombre de buts.
Toutes les fiches ont la même forme. Et il y a des gestes que l’on fait sur une fiche : ajouter un but, remettre à zéro.
En Python, on peut décrire cette forme une fois, puis fabriquer autant de fiches qu’on veut.
Mots-clés
| Mot | Ce que ça veut dire | Exemple |
|---|---|---|
| Classe | Le plan d’une sorte d’objet. C’est le moule qui sert à fabriquer des fiches. | class Joueur: |
| Objet | Une chose fabriquée avec une classe. Une fiche remplie. | lina = Joueur("Lina") |
| Attribut | Une information gardée par l’objet. | lina.buts |
| Méthode | Une action que l’objet sait faire. C’est une fonction rangée dans la classe. | lina.marquer() |
| self | Dans une méthode, le mot qui veut dire « cet objet-ci ». | self.buts |
| __init__ | La méthode qui prépare un objet neuf, au moment où on le crée. | def __init__(self, nom): |
Les cellules que les étudiants remplissent restent vides dans cet aperçu.
Une classe, des objets
On écrit class, le nom de la classe avec une majuscule, et deux-points.
Pour fabriquer un objet, on écrit le nom de la classe avec des parenthèses : Joueur().
Ensuite, on peut lui accrocher des attributs avec un point : lina.nom = "Lina".
À toi : deux fiches à la main
class Joueur:
pass
lina = Joueur()
lina.nom = "Lina"
lina.buts = 0
karim = Joueur()
karim.nom = "Karim"
karim.buts = 2
print(lina.nom, lina.buts)
print(karim.nom, karim.buts)
# Crée un troisième joueur, avec ton prénom et 5 buts.
Préparer l’objet tout seul
Remplir chaque fiche à la main, c’est long. On risque d’oublier un attribut.
La méthode __init__ est lancée toute seule quand on crée l’objet. Elle y met les attributs de départ.
Elle a toujours self en premier : c’est l’objet en train d’être fabriqué.
À toi : __init__ et marquer
class Joueur:
def __init__(self, nom):
# self veut dire : ce joueur-ci, celui qu'on est en train de créer.
self.nom = nom
self.buts = 0
def marquer(self):
self.buts = self.buts + 1
lina = Joueur("Lina")
print(lina.nom, lina.buts)
lina.marquer()
lina.marquer()
print(lina.nom, lina.buts)
# Appelle lina.marquer() encore une fois. Combien de buts maintenant ?
Exemple travaillé : lina = Joueur("Lina")
| Étape | Ce que fait Python | Ce qui existe |
|---|---|---|
| 1 | Il fabrique un objet vide | un objet sans attribut |
| 2 | Il lance __init__ avec self = cet objet, nom = "Lina" | l’objet attend ses attributs |
| 3 | self.nom = nom range le prénom | lina.nom vaut "Lina" |
| 4 | self.buts = 0 range le zéro | lina.buts vaut 0 |
| 5 | Il donne l’objet à la variable lina | lina désigne la fiche |
Les cellules que les étudiants remplissent restent vides dans cet aperçu.
Contrôle rapide
À toi de jouer
Contrôle rapide
4 questionsTes réponses sont corrigées ici et ne sont pas conservées. Un compte garde tes résultats.
Les méthodes
Une méthode est une fonction écrite dans la classe. On l’appelle avec un point : lina.marquer().
On ne donne pas self à l’appel : Python met tout seul l’objet devant le point.
Dans lina.marquer(), self désigne lina. Dans karim.marquer(), c’est karim.