Agitateur de Neurones

Les Classes dans Python

You are here:
< Back

Dans tous les langages objets, on retrouve les notions d’objet, de méthode et de classe. Python a une façon un peu particulière de les gérer. Si certains d’entre vous connaissent bien le C++ ou Java, prenez quand même le temps de lire cette leçon pour mieux comprendre comme Python gère les classes.

Une classe est une entité qui regroupe un objet et des fonctions qui s’appliquent à cet objet, les méthodes.

Par exemple, il peut être intéressant de définir la Classe Client pour gérer les informations sur un client (société, adresse, ville, code postal, etc…) et de pouvoir appliquer de manière homogène certains traitements (création, suppression, etc…) à tous ces clients. La Classe n’est qu’une description de l’objet et des méthodes associées. Pour travailler sur un ou plusieurs objets définis par une Classe, il faut instancier la Classe.

Utilisons Python pour créer une Classe très simple :

class Toto:
def __init__(self, val):
self.val = val
def printVal(self):
print(self.val)

Cette Classe Toto dispose d’une variable, val,  qui n’est pas explicitement déclarée (pas besoin sous Python) et de deux méthodes __init__ et printVal. Elle demande aussi un paramètre, self, qui est le nommage standard sous Python et qui permet d’identifier l’instanciation de la classe.

__init__ est la méthode qui permet de créer une nouvelle instance de la classe.

Pour clarifier les choses :

val est une variable passée comme argument ;

self.val = val est la variable val de l’instanciation self de la classe Toto.

Par exemple, si je souhaite instancier deux fois la Classe Toto pour obtenir 2 objets, je saisis :

objet1 = Toto(1)
objet2 = Toto(2)

Si je demande à Python d’appliquer la méthode printVal sur les deux objets, voilà le résultat :

>>> objet1.printVal()
1
>>> objet2.printVal()
2

Python dispose de plusieurs méthodes standards comme __init__ qui nous a permis de créer une nouvelle instance de la classe. Par exemple :

  • __lt__, __le__, __eq__, __ne__, __gt__ et __ge__ permettent de comparer un objet avec un autre objet.
  • __str__ permet de retourner une chaîne de caractères qui représente l’objet.
  • __del__ permet de supprimer une instance et de ‘nettoyer’ les allocations mémoire et les pointeurs.

En Python, les méthodes et les variables sont toujours publiques par défaut. Si vous souhaitez que la méthode ou la variable reste privé, la convention consiste à faire précéder le nom de la méthode ou de la variable d’un _.

 

Tags: