Programme Officiel

Contenus

Capacités attendues

Commentaires

Vocabulaire de la programmation objet : classes, attributs, méthodes, objets.

Écrire la définition d’une classe.

Accéder aux attributs et méthodes d’une classe.

On n’aborde pas ici tous les aspects de la programmation objet comme le polymorphisme et l’héritage.

Lien vers le programme complet
1 del classe1.x
      2 classe1.x


AttributeError: x

Les méthodes et le mot clé self

Les méthodes sont des fonctions définies au sein de la classe.

Une méthode prend toujours en premier paramètre l'objet lui-même par l'intermédiare de l'argument self.

L'appel de la méthode se fait également avec la notation pointée: nom_instance.methode()`


Entrée
class MaClasse:
    x = 4
    def ajoute_n(self, n):
        """Cette méthode modifie l'attribut x et le renvoie"""
        self.x += n
        return self.x

classe1 = MaClasse()
# appel de la méthode pour ajouter 5 et le renvoyer
classe1.ajoute_n(5)
Résultat
9

Entrée
# l'attribut x a bien été modifié
classe1.x
Résultat
9

Initialisation avec le constructeur __init__()

Il est souvent interressant de créer des objets différents à partir d'un même classe , il est donc possible d'ajouter des arguments qui seront pris en charge lors de l'instanciation de l'objet en utilisant la méthode prédéfinie: __init().

Prenons l'exemple d'une classe plus réaliste consitant à représenter une personne.


Entrée
class Personne:
    def __init__(self, nom, age):
        self.nom = nom
        self.age = age

p1 = Personne("Jim", 27)

print(p1.nom)
print(p1.age) 
Sortie
Jim
27

En plus: Héritage

Un des aspects intéressants(mais hors-programme) est la possibilité de créer des sous classes qui héritent des attributs et méthode de la classe parente.


Entrée
class Eleve(Personne):
    def __init__(self, nom, age, classe):
        # super appelle le constructeur du parent
        super().__init__(nom, age)
        self.classe = classe
    def presentation(self):
        """Fait l'élève se présenter"""
        print(f"Bonjour, je suis {self.nom}, j'ai {self.age} et je suis en {self.classe}")
    

albert = Eleve("Albert", 27, 'nsi')

albert.presentation()
Sortie
Bonjour, je suis Albert, j'ai 27 et je suis en nsi

----- -->