Dans la programmation orientée objet (POO) avec Python, self
est en effet une référence à l'instance de la classe actuelle. C'est le premier argument qui doit être spécifié dans les méthodes d'instance. Lorsqu'une méthode d'instance est appelée, Python passe automatiquement l'instance de la classe actuelle à la méthode, nous ne devons donc pas passer l'instance en tant qu'argument pendant l'appel de la méthode.
Prenons un exemple pratique pour illustrer ce concept. Supposons que nous ayons une classe Etudiant
avec une méthode nom_complet
.
class Etudiant:
def __init__(self, prenom, nom):
self.prenom = prenom
self.nom = nom
def nom_complet(self):
return f"{self.prenom} {self.nom}"
Dans ce cas, self
est utilisé pour accéder aux attributs de l'instance de la classe. Si nous créons une instance de Etudiant
et appelons la méthode nom_complet
,
etudiant1 = Etudiant("John", "Doe")
print(etudiant1.nom_complet()) # affiche "John Doe"
Python passe automatiquement etudiant1
comme premier argument à nom_complet()
. C'est pourquoi nous pouvons utiliser self.prenom
et self.nom
pour accéder aux attributs de l'instance actuelle.
Il est important de noter que bien que conventionnellement, nous utilisions le terme self
, Python n'exige pas que ce soit spécifiquement self
. Vous pourriez aussi bien utiliser moi
, cet_objet
, etc. Cependant, par convention et pour le maintien de la lisibilité et de la compréhension, la plupart des développeurs Python utilisent self
.
Le mot-clé self
dans Python représente un paradigme important de la POO appelé encapsulation. L'encapsulation est le mécanisme de regroupement des données, et les méthodes qui manipulent ces données, en une seule unité (qui est l'objet ici). En utilisant self
, nous manipulons les données de chaque instance de la classe séparément, ce qui est l'idée fondamentale de l'encapsulation.