Menu
Coddy logo textTech

Le paramètre self

Fait partie de la section Object Oriented Programming du Journey Python de Coddy — leçon 4 sur 64.

Le paramètre self fait référence à l'instance d'une classe au sein des méthodes. Il vous permet d'accéder aux attributs de l'objet actuel et de les modifier.

Voici un exemple d'une classe avec des méthodes utilisant self :

class Car:
    def honk(self):
        print("Beep beep!")
    
    def describe(self):
        print(f"I am a {self.color} {self.model}")

Le paramètre self doit toujours être le premier paramètre dans les définitions de méthodes. Il indique à la méthode quel objet spécifique est utilisé.

Créez un objet voiture et ajoutez des attributs :

my_car = Car()
my_car.color = "Red"
my_car.model = "Sedan"

Maintenant, appelez les méthodes :

my_car.honk()
my_car.describe()

Sortie :

Beep beep!
I am a Red Sedan

Remarquez que lors de l'appel de my_car.describe(), vous ne passez rien pour self - Python passe automatiquement my_car comme paramètre self.

Voici ce qui se passe en coulisses :

# Quand vous écrivez ceci :
my_car.describe()

# Python fait en réalité ceci :
Car.describe(my_car)

Le paramètre self permet à chaque objet d'accéder à ses propres données. Sans self, les méthodes ne sauraient pas quels attributs d'objet utiliser.

Point clé : incluez toujours self comme premier paramètre dans les définitions de méthodes, mais ne le passez jamais lors de l'appel de méthodes - Python gère cela automatiquement.

challenge icon

Défi

Facile

Complétez la classe Car dans car.py en ajoutant une méthode appelée display_info qui utilise le paramètre self pour afficher l'année, la marque et le modèle de la voiture au format :

"This car is a [year] [make] [model]".

  • car.py : Contient la définition de la classe Car où vous ajouterez la méthode display_info
  • driver.py : Fichier d'exécution principal qui importe et utilise la classe Car

Le fichier driver.py importera votre classe Car et créera des instances pour tester votre implémentation. Assurez-vous que votre méthode fonctionne correctement lorsqu'elle est appelée depuis le fichier driver.

Essayez vous-même

from car import Car

# Testez votre code
my_car = Car()
my_car.year = 2020
my_car.make = "Toyota"
my_car.model = "Corolla"

my_car.display_info()  # Devrait afficher : This car is a 2020 Toyota Corolla
quiz iconTestez-vous

Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.

Toutes les leçons de Object Oriented Programming