You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
This repo is archived. You can view files and clone it, but cannot push or open issues/pull-requests.
 
 
 
 
 
 

2.6 KiB

%e Programmation avec Python (chapitre 5) % Dimitri Merejkowsky

\center \huge Rappels sur les classes

Classes vides

Définition:

class MonObjet:
    pass

Instanciation:

>>> objet_1 = MonObjet()

Attributs

>>> mon_instance = MonObjet()
>>> mon_instance.x = 42
>>> mon_instance.mon_attribut
42

Méthodes

Définition:

class MonObjet:
    def ma_méthode(self):
        return 42

Appel:

class MonObjet:
    def ma_méthode(self):
            return 42
>>> ma_méthode()
Erreur
>>> mon_instance = MonObjet()
>>> mon_instance.ma_méthode()
42

self - 1

self prend la valeur de l’instance courante quand la méthode est appelée.

class MonObjet:
    def affiche_attribut_x(self):
        print(self.x)

>>> mon_instance = MonObjet()
>>> mon_instance.x = 42
>>> mon_instance.affiche_attribut_x()
42

self - 2

On peut aussi créer des attributs dans une méthode:

class MonObjet:
    def crée_attribut_x(self):
        self.x = 42
    def affiche_attribut_x(self):
        print(self.x)

>>> mon_instance = MonObjet()
>>> mon_instance.affiche_attribut_x()
# Erreur: `mon_instance` n'a pas d'attribut `x`

>>> mon_instance.crée_attribut_x()
>>> mon_instance.affiche_attribut_x()
42

Méthodes avec arguments

class MonObjet
    def crée_attribut_x(self, valeur_de_x):
        self.x = valeur_de_x

    def affiche_attribut_x(self);
        print(self.x)

>>> mon_instance = MonObjet()
>>> mon_instance.crée_attribut_x(42)
>>> mon_instance.affiche_attribut_x()
42

Méthodes appelant d’autres méthodes - 1

class MonObjet:
    def méthode_1(self):
        print("démarrage de la méthode 1")
        print("la méthode 1 affiche bonjour")
        print("bonjour")
        print("fin de la méthode 1")


    def méthode_2(self):
        print("la méthode 2 appelle la méthode 1")
        self.méthode_1()
        print("fin de la méthode 2")

Méthodes appelant d’autres méthodes - 2

>>> mon_instance = MonObjet()
>>> mon_instance.méthode_2()
la méthode 2 appelle la méthode 1
démarrage de la méthode 1
la méthode 1 affiche bonjour
bonjour
fin de la méthode 1
fin de la méthode 2

Constructeur sans arguments

class MonObjet:
    def __init__(self):
        self.x = 1
        self.y = 2

>>> mon_instance = MonObjet()
>>> mon_instance.x
1
>>> mon_instance.y
2

Constructeur avec arguments

class MonObjet:
    def __init__(self, x, y):
        self.x = x
        self.y = y
>>> mon_instance = MonObjet(3, 4)
>>> mon_instance.x
3
>>> mon_instance.y
4