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.