PaliSkill
← Python avancé

Leçon 3 / 10 — Chapitre 1: POO : les fondamentaux

Définir des méthodes

Une méthode est une fonction définie à l'intérieur d'une classe, qui agit sur un objet précis via self — exactement comme __init__, mais pour un comportement autre que la création.

class Produit:
    def __init__(self, nom, prix, stock):
        self.nom = nom
        self.prix = prix
        self.stock = stock

    def valeur_stock(self):
        return self.prix * self.stock

riz = Produit("riz", 5, 20)
print(riz.valeur_stock())

Ce code affiche 100 : valeur_stock accède à self.prix et self.stock, les attributs de l'objet sur lequel elle est appelée — riz.valeur_stock() équivaut en interne à Produit.valeur_stock(riz), où riz devient self.

Une méthode peut aussi modifier les attributs de l'objet, plutôt que seulement les lire :

    def vendre(self, quantite):
        self.stock = self.stock - quantite
riz.vendre(5)
print(riz.stock)

Ce code affiche 15 : vendre modifie directement self.stock, donc l'attribut de l'objet riz change de façon persistante, visible lors des accès suivants.

À vous de jouer : ajoutez une méthode vendre(self, quantite) à Produit, appelez-la sur un objet, et vérifiez que son stock a bien changé.

À vous de jouer

À faire

Que va afficher ce code ?

class Produit:
    def __init__(self, prix, stock):
        self.prix = prix
        self.stock = stock
    def valeur_stock(self):
        return self.prix * self.stock

p = Produit(4, 25)
print(p.valeur_stock())

Copiez ce code dans un environnement Python en ligne (Google Colab, Replit, ou tout autre) pour vérifier le résultat avant de répondre.

À vous de jouer

À faire

A quoi p.valeur_stock() equivaut-il en interne, en ecriture explicite avec la classe ?

Copiez ce code dans un environnement Python en ligne (Google Colab, Replit, ou tout autre) pour vérifier le résultat avant de répondre.

💡 la méthode appelée sur la classe, avec l'objet en argument

Quitter le module