Ajouter des méthodes aux objets

Reprenons notre objet voiture :

In [1]:
class Voiture:
    def __init__(self, marque, modele, couleur):
        self.marque=marque
        self.modele=modele
        self.couleur=couleur
        
Voiture1=Voiture("Renault", "Mégane", "Rouge")
Voiture2=Voiture("Ford", "Focus", "Jaune")
print(Voiture2.modele)
Focus

Nous allons faire parler nos voitures en ajoutant une méthode à la classe "Voiture" :

In [2]:
class Voiture:
    def __init__(self, marque, modele, couleur):
        self.marque=marque
        self.modele=modele
        self.couleur=couleur
        
    def dis_moi_tout(self):
        print("Je suis une", self.marque, self.modele, self.couleur)
        
Voiture1=Voiture("Renault", "Mégane", "Rouge")
Voiture2=Voiture("Ford", "Focus", "Jaune")
Voiture2.dis_moi_tout()
Je suis une Ford Focus Jaune

Une autre méthode plus élaborée :

In [3]:
class Voiture:
    def __init__(self, marque, modele, couleur):
        self.marque=marque
        self.modele=modele
        self.couleur=couleur
        #On ajoute un nouvel attribut:
        self.compteur=0
        
    def dis_moi_tout(self):
        print("Je suis une", self.marque, self.modele, self.couleur, "avec", self.compteur, "km.")
        
    def roule(self, km):
        #Ici, km doit être un entier.
        #On va ajouter des kilomètres au compteur de la voiture:
        self.compteur+=km
        print("Je viens de rouler pendant", km, "km.")
        
Voiture1=Voiture("Renault", "Mégane", "Rouge")
Voiture2=Voiture("Ford", "Focus", "Jaune")
#On fait rouler la Voiture2 pendant 23 km:
Voiture2.roule(23)
#Encore un peu de route:
Voiture2.roule(56)
#On fait parler Voiture2:
Voiture2.dis_moi_tout()
Je viens de rouler pendant 23 km.
Je viens de rouler pendant 56 km.
Je suis une Ford Focus Jaune avec 79 km.

* Remarque:*

Les objets peuvent avoir de nombreux attributs et méthodes. De plus, si vous importez des modules (comme Tkinter), certains objets sont prédéfinis et il est difficile de connaître par coeur tout ce qu'on peut leur faire subir.

Pour connaître les méthodes et attributs d'un objet, il existe une fonction : dir()

In [4]:
class Voiture:
    def __init__(self, marque, modele, couleur):
        self.marque=marque
        self.modele=modele
        self.couleur=couleur
        self.compteur=0
        
    def dis_moi_tout(self):
        print("Je suis une", self.marque, self.modele, self.couleur, "avec", self.compteur, "km.")
        
    def roule(self, km):
        self.compteur+=km
        print("Je viens de rouler pendant", km, "km.")
        
Voiture1=Voiture("Renault", "Mégane", "Rouge")

#Que peut-on faire subir à l'objet "Voiture1"?
print(dir(Voiture1))
['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__', 'compteur', 'couleur', 'dis_moi_tout', 'marque', 'modele', 'roule']

On voit alors apparaître des méthodes encadrées de "__". Ce sont des méthodes spéciales...

On voit aussi nos attributs et nos méthodes.

A vous de jouer !

Connaissez-vous les Tamagotchi ?

Ce sont des animaux de compagnie virtuels japonais.

  • Ils ont un nom, une couleur, un poids, une humeur (content, en colère...)...

  • Ils aiment les câlins et manger (mais ils grossissent). Ils peuvent faire du sport pour maigrir un peu...

Créez votre Tamagotchi !