Le mot réservé class permet de définir un modèle en associant un certain nombre de variables (attributs) et de fonctions (méthodes) à un nom.
>>> class Voiture(object): ... couleur = 'Verte' ... etat = 'arret' ... def demarrer(self): ... self.etat = 'marche' ... def arreter(self): ... self.etat = 'arret' ... >>> voiture1 = Voiture() >>> voiture1.couleur 'Verte' >>> voiture1.etat 'arret' >>> voiture1.demarrer() >>> voiture1.etat 'marche'
Toutes les variables (attributs) et les fonctions (méthodes) placées dans le niveau d'indentation de la classe en deviennent des membres. voiture1 est une instance de la classe Voiture.
Python permet de définir des classes dérivées très simplement.
>>> class Polo(Voiture): ... pass ... >>> polo1 = Polo() >>> polo1.demarrer()
Python prend en charge l'héritage multiple en laissant la possibilité de lister plusieurs classes parentes dans la définition.
>>> class Animal(object): ... nom = 'cheval' ... def affiche(self): ... print self.nom ... >>> class Aliment(object): ... nom = 'avoine' ... def bio(self): ... print 'oui' ... >>> class Ferme(Animal, Aliment): ... pass ... >>> dir(Ferme) ['__class__', ..., 'affiche', 'bio', 'nom'] >>> ferme = Ferme() >>> ferme.nom 'cheval' >>> ferme.affiche() cheval >>> ferme.bio() oui
Toutes les méthodes et attributs de données peuvent être surchargés, en utilisant la même signature.
>>> class Animal(object): ... type = 'animal' ... def affiche(self): ... print self.type ... >>> class Cheval(Animal): ... def affiche(self): ... print 'Cheval (%s)' % self.type ... >>> c = Cheval() >>> c.affiche() Cheval (animal)
Sylvain Boureliou - sylvain.boureliou@gmail.com - www.boureliou.com