Aller au contenu
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)   # 70

Dans 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)
4
5# dans la classe :
6# def attaquer(self, cible):
7# cible.pv = cible.pv - self.force
class Personnage
attributs : nom, force, pv
méthodes : attaquer
Variables

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. 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. 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. 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. 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. 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. 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. 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. 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.