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 SedanRemarquez 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.
Défi
FacileComplé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 classeCaroù vous ajouterez la méthodedisplay_infodriver.py: Fichier d'exécution principal qui importe et utilise la classeCar
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.
Aide-mémoire
Le paramètre self fait référence à l'instance d'une classe au sein des méthodes et vous permet d'accéder aux attributs de l'objet actuel et de les modifier.
self doit toujours être le premier paramètre dans les définitions de méthodes :
class Car:
def honk(self):
print("Beep beep!")
def describe(self):
print(f"I am a {self.color} {self.model}")Créez un objet et ajoutez des attributs :
my_car = Car()
my_car.color = "Red"
my_car.model = "Sedan"Appelez les méthodes (Python passe automatiquement l'objet en tant que self) :
my_car.honk() # Beep beep!
my_car.describe() # I am a Red SedanPoint clé : incluez toujours self comme premier paramètre dans les définitions de méthodes, mais ne le passez jamais lors de l'appel des méthodes.
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 CorollaCette 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
1Les fondamentaux de la POO
Fichiers externesIntroduction à la POOClasses vs ObjetsLe paramètre selfMéthodesAttributsMéthode constructeur (__init__)Récapitulatif - Calculatrice simple4Héritage
Héritage de baseLa fonction super()Redéfinition de méthodeHéritage multipleOrdre de résolution des méthodesRécapitulatif - Hiérarchie des employés7Méthodes spéciales
Introduction aux méthodes magiquesSurcharge d'opérateursMéthodes magiques de conteneurRécapitulatif - Liste personnalisée10Patrons de conception, Partie 1
Introduction aux patrons de conceptionPatron SingletonPatron FactoryPatron ObserverPatron Strategy2Décorateurs
Introduction aux décorateursDécorateur de propriétéDécorateur de méthode statiqueDécorateur de méthode de classe5Polymorphisme
Retour sur la redéfinition de méthodeDuck TypingClasses et méthodes abstraitesConception d'interfacesRécapitulatif - Calculateur de formes8Concepts avancés de la POO
Composition vs HéritageMixinsMéthodes statiques et de classeDécorateurs de classeGestionnaires de contexte11Patrons de conception, Partie 2
Patron CommandePatron AdaptateurPatron DécorateurPatron Méthode TemplatePatron ÉtatPatron Composite3Propriétés de classe
Variables d'instance vs variables de classeDécorateurs de propriétéAttributs privésRécapitulatif - Gestionnaire de compte bancaire