À quoi sert la méthode __init__ ?
La méthode __init__
est une méthode spéciale qui est appelée lors de la création d'une instance.
On peut l'utiliser pour initialiser un certain nombre d'attributs et / ou effectuer des opérations lors de l'instanciation d'une classe :
class Person:
def __init__(self, prenom, nom, age):
print("Initialisation de l'instance", self)
self.prenom = prenom
self.nom = nom
self.age = age
self.nationalite = "français"
patrick = Person(prenom="Patrick", nom="Michaud", age=27)
print(patrick.prenom, patrick.nom)
print(patrick.nationalite)
La méthode __init__
est une méthode spéciale, elle doit par exemple obligatoirement retourner None
.
Vous ne pouvez donc pas utiliser l'instruction return
à l'intérieur de cette méthode (à moins de retourner explicitement None
) :
class Person:
def __init__(self, prenom, nom, age):
print("Initialisation de l'instance", self)
self.prenom = prenom
self.nom = nom
self.age = age
self.nationalite = "français"
return self.nationalite
# TypeError: __init__() should return None, not 'str'
patrick = Person(prenom="Patrick", nom="Michaud", age=27)
On peut donc retourner None
sans obtenir d'erreur, mais cela n'a pas vraiment d'intérêt :
class Person:
def __init__(self, prenom, nom, age):
print("Initialisation de l'instance", self)
self.prenom = prenom
self.nom = nom
self.age = age
self.nationalite = "français"
return None
patrick = Person(prenom="Patrick", nom="Michaud", age=27)