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éfinitionInstanciation

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.

ExempleClasse 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.

1
class MaClasse:
2
    """ Une classe simple """
3
    x = 200
4
    def __init__(self, val):
5
        self.a = val
6
    def une_methode(self):
7
        print("Valeur de l'attribut a :", self.a)
8
        print("Valeur de l'attribut x :", self.x)
9
10
un_objet = MaClasse(3)
11
un_objet.une_methode()
12
un_autre_objet = MaClasse(28)
13
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()

RemarqueHistoire 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 :

Python 2, c'est fini !

La notation class A(B) : existe toujours, mais cela c'est pour l'héritage.