class Verre: def __init__(self, vol): self.__volume = vol def remplit(self, vol): self.__volume += vol def vide(self, vol): self.__volume = self.__volume - vol def getvolume(self): # Accesseur (getteur) return self.__volume class Monstre: # Le code est limité à l'ajout de la méthode boit dans la version précédente # Ici le lien d'association est faible et provisoire verre n'existe plus à la sortie de la méthode boit def boit(self, vol, verre): verre.vide(vol) # Programme # Un vampire sert un verre de sang à Dracula verreDeSang = Verre(50) print(f'Le verre contient {verreDeSang.getvolume()} cl de sang') # 1 dracula = Monstre("Dracula", verreDeSang) # Dracula voit le verre et se déplace dracula.seDeplace(20, 30) # mais reçoit un projectile dracula.estTouche(6) print(f'{dracula} : touché !') # 2 Monstre.getNombreDeMonstresEnVie() # 3 # Toujours en vie il boit dracula.boit(10, verreDeSang) print(f'Il reste {verreDeSang.getvolume()} cl dans le verre de sang') #4