Des objets qui travaillent ensembleChapitre 6/8
Un objet qui agit sur un autre
Une méthode peut recevoir un autre objet en paramètre. Dans un combat, Arthur attaque l'Ogre : la méthode attaquer de l'attaquant reçoit la cible, et lui retire autant de PV que sa propre force.
class Personnage:
def __init__(self, nom, force):
self.nom = nom
self.force = force
self.pv = 100
def attaquer(self, cible):
cible.pv = cible.pv - self.force
arthur = Personnage("Arthur", 30)
ogre = Personnage("Ogre", 40)
arthur.attaquer(ogre)
print(ogre.pv) # 70Dans attaquer, deux objets sont en jeu : self (celui avant le point, qui attaque) et cible (celui entre parenthèses, qui encaisse). self.force est la force de l'attaquant, cible.pv les PV de la victime.
1arthur = Personnage("Arthur", 30)2ogre = Personnage("Ogre", 40)3arthur.attaquer(ogre)45# dans la classe :6# def attaquer(self, cible):7# cible.pv = cible.pv - self.force
class Personnage
attributs : nom, force, pv
méthodes : attaquer
Appuie sur Lecture ou avance pas à pas avec la flèche.
VitesseÉtape 1/5
Programme complet du cours de programmation orientée objet (8 chapitres, gratuit)
- 1. Pourquoi des objets ? : Le problème qu'on cherche à résoudre : des données éparpillées dans des variables et des dictionnaires, et l'idée de regrouper l'état et les actions dans un seul objet.
- 2. Classe et objet : Le plan et ce qu'on fabrique avec : écrire une classe avec class, instancier des objets, et découvrir que int, str et list sont des classes.
- 3. Les attributs : l'état d'un objet : Donner des données à un objet avec le point, les lire, les modifier, et comprendre ce qui se passe quand deux variables désignent le même objet.
- 4. Le constructeur : __init__ et self : Remplir un objet dès sa fabrication : la méthode __init__, le paramètre self, les arguments donnés à la classe et les attributs à valeur fixe.
- 5. Les méthodes : les actions d'un objet : Écrire les actions d'un objet dans sa classe : méthodes qui affichent, qui modifient l'état, qui renvoient une valeur, et ce que fait vraiment p.saluer().
- 6. Des objets qui travaillent ensemble : Un objet en paramètre d'une méthode, un attribut qui est une liste d'objets (le panier et ses produits), et une première structure : la pile.
- 7. L'encapsulation : protéger l'état : Empêcher qu'on mette un solde à -1000 : vérifications dans les méthodes, attributs privés avec _ et __, accesseurs et mutateurs, interface et implémentation.
- 8. La totale : une bibliothèque de prêt : Un mini-projet guidé qui utilise tout le cours : classes Livre et Bibliotheque, attributs privés, objets qui en contiennent d'autres, et un guichet qui lit au clavier.