Classe
Définition :
Une classe est définie par le mot clef class, suivi du nom de la classe. L'indentation permet de définir des attributs ou des méthodes (fonctions dans l'espace de nom de la classe). Le nom attribut peut être associé parfois à des variables de la classe ou à des méthodes indifféremment.
L'accès aux attributs d'un objet est fait en utilisant l'opérateur point ( . ).
Les méthodes d'une classe ont toujours un paramètre, généralement nommé self. Ce paramètre permet d'avoir accès aux attributs de l'objet appelés par la méthode.
Définition : Instanciation
L'instanciation permet de créer un nouvel objet. Par défaut, si la méthode __init__ existe, le constructeur de l'objet , elle est appelée lors de l'instanciation.
Exemple : Classe simple
Le nom de la classe est MaClasse.
L'attribut x, dit static, est initialisé toujours à 200 lors de l'instanciation de l'objet.
L'attribut a est initialisé en fonction de la valeur donnée lors de l'instanciation de l'objet.
class MaClasse:
""" Une classe simple """x = 200
def __init__(self, val):
self.a = val
def une_methode(self):
print("Valeur de l'attribut a :", self.a)
print("Valeur de l'attribut x :", self.x)
un_objet = MaClasse(3)
un_objet.une_methode()
un_autre_objet = MaClasse(28)
un_autre_objet.une_methode()
La création de l'objet, appelée instanciation, est faite en mettant le nom de la classe, suivi de parenthèses avec en argument les valeurs nécessaires : un_objet = MaClasse(3)
Pour l'appel d'une méthode on met le nom de l'objet, un point et enfin le nom de méthode avec les arguments s'il en faut : un_objet.une_methode()
Remarque : Histoire de python 2 à python 3
Vous pouvez trouver la déclaration class A(object) : parfois (avec le nom explicite object). Aujourd'hui en python 3 class A(object) : est équivalent à class A :
La notation class A(B) : existe toujours, mais cela c'est pour l'héritage.