Séance 2 · 1 heure
Écrire une classe
Fil rouge du chapitre : créer un jeu de rôle
Rappel Ce qu'on sait déjà
Une classe est un moule, un objet en est une réalisation concrète, un attribut est une caractéristique qui appartient à l'objet.
class Personnage:
def __init__(self, nom, pv, force):
self.nom = nom
self.pv = pv
self.force = force
Démonstration Pourquoi self ?
Voici une version volontairement fautive — pas de self dans le constructeur.
class Personnage:
def __init__(nom, pv, force):
nom = nom
pv = pv
force = force
hero = Personnage("Aria", 100, 15)
# TypeError: __init__() takes 3 positional arguments but 4 were given
Réponse : Python passe toujours l'objet lui-même en premier argument, automatiquement. C'est ce qu'on doit récupérer avec self — l'étiquette "moi-même, l'objet en train de se fabriquer".
class Personnage:
def __init__(self, nom, pv, force):
self.nom = nom
self.pv = pv
self.force = force
self n'est JAMAIS fourni par vous à l'appel. Vous ne verrez jamais Personnage(self, "Aria", 100, 15). Python s'en charge tout seul.
Exercice guidé La classe Monstre
Compléter le constructeur à trous suivant, pour une classe Monstre (nom, pv, degats, butin).
class Monstre:
def __init__(self, nom, pv, degats, butin):
... = nom
self.pv = ...
self.degats = degats
...
Exercice autonome — La classe Objet_magique
Écrire de A à Z une classe Objet_magique avec un attribut nom, un attribut effet, et un attribut valeur. Puis créer un objet epee ("Excalibur", "attaque", 25) et afficher son nom.