Le mot-clé self en Python
Ce tutoriel explique le but et l’utilisation du mot-clé self
en Python. Dans la programmation orientée objet, nous avons des classes, et chaque classe possède divers attributs et méthodes. Chaque fois qu’un objet ou une instance d’une classe est créé, le constructeur (méthode __init__()
en Python) est appelé pour initialiser les attributs de l’instance.
Lors de la création d’une instance d’une classe, nous devons différencier ou spécifier les attributs de l’instance à partir des arguments et des autres variables. Et c’est là que nous avons besoin du mot-clé self
pour spécifier que nous passons la valeur aux attributs de l’instance et non à la variable locale ou à l’argument du même nom.
Supposons que, pour une classe car
nous passions l’argument color
à la méthode __init__()
pour initialiser l’attribut color
de la classe car
, nous spécifierons l’attribut color
de l’instance comme self.color
, ce qui montre que la classe car
a un attribut color
et nous lui assignons la valeur.
De même, nous pouvons aussi appeler les méthodes de l’instance de la classe en utilisant le mot-clé self
comme la méthode self.start()
de la classe car
. En bref, nous pouvons dire que le mot-clé self
permet à l’utilisateur de spécifier et d’accéder aux attributs et aux méthodes d’une instance de la classe.
Utilisation et exemples de codes du mot-clé self
en Python
Voyons maintenant comment le mot-clé self
est utilisé en Python pour spécifier les méthodes et les attributs d’une instance via l’exemple de code.
Le premier exemple de code donné ci-dessous montre comment le mot-clé self
est utilisé dans la méthode __init__()
pour initialiser les attributs de l’instance en cours d’initialisation. Nous n’avons pas besoin de déclarer ou de créer des variables avant de les initialiser ou de leur attribuer des valeurs, de sorte que nous pouvons initialiser les attributs de l’instance de la manière suivante :
class car:
def __init__(self, model, color):
self.model = model
self.color = color
mycar = car("model XYZ", "red")
print(mycar.model)
print(mycar.color)
Production :
model XYZ
red
Comme on peut le voir ci-dessus, la méthode __init__()
est appelée automatiquement lors de la création d’une nouvelle instance de la classe, et ses attributs sont initialisés. Le self
doit être le paramètre de la méthode pour accéder aux méthodes et aux attributs des instances.
L’exemple de code ci-dessous montre comment utiliser le mot-clé self
pour appeler les méthodes d’instance/classe au sein d’autres méthodes de classe en Python.
class car:
def __init__(self, model, color):
self.model = model
self.color = color
self.start()
def start(self):
print(self.model + ", has started!")
mycar = car("model XYZ", "red")
Production :
model XYZ, has started!
Comme dans l’exemple de code ci-dessus, nous pouvons appeler des méthodes de classe en utilisant le mot-clé self
et accéder aux attributs de n’importe quelle méthode de classe en passant l’instance de la classe en tant que paramètre self
.