Ceci est une ancienne révision du document !
Une classe est une sorte de moule, on pourrait par exemple imaginer une class voiture avec comme attributs :
Et comme fonctions, on pourrait imaginer :
La création d'une classe va commencer par le mot class.
class Voiture: #instructions, paramètres, etc...
Pour créer une nouvelle instance de la classe, cela est simple :
clio = Voiture() peugeot407 = Voiture()
Dans le code ci-dessus, nous créons deux instances de la classe Voiture(), en modifier une ne modifieras pas l'autre.
Penchons nous sur les attributs :
class Voiture: pass clio = Voiture() clio.couleur = "Noir" peugeot407 = Voiture() peugeot407.couleur = "Blanc"
Nous venons de créer un attribut “couleur” pour les deux instances de la classe. Cependant, cela n'est pas une bonne pratique. Il existe un moyen plus propre et efficace pour définir des attributs.
Pour cela, nous allons nous servir d'une méthode (une fonctions définie dans une classe)
class Voiture: def __init__ (self): self.couleur = "Noir"
La méthode __init__ est automatiquement exécutée lors de la création d'une instance. Le mot self est obligatoirement le premier argument d'une méthode, ce mot self représente l'instance.
Lors de la création d'une nouvelle instance, la couleur sera automatiquement noir.
Pour faire en sorte de pouvoir définir la couleur de chaque voiture, nous allons modifier cette classe :
class Voiture: def __init__ (self, couleurVoiture): self.couleur = couleurVoiture clio = Voiture("Noir") peugeot407 = Voiture("Blanc")
Au moment de la création de l'instance, on passe comme argument la couleur de la voiture. La méthode __init__ va ensuite attribuer l'argument couleurVoiture à la variable couleur.
Nous pouvons ensuite ajouter d'autres méthodes :
class Voiture: def __init__ (self, couleurVoiture, nbrKM): self.couleur = couleurVoiture self.kilometres = nbrKM def ajouterKM(self): self.kilometres = self.kilometres + 1 def donneKM(self): return self.kilometres def donneCouleur(self): return self.couleur clio = Voiture("Blanc", 100) clio.donneKM() #renvoie 100 clio.ajouterKM() #ajoute 1 clio.donnerKM() #renvoie 101