Plusieurs constructeurs Python
Ce tutoriel discutera des constructeurs et de la méthode pour faire face au besoin de plusieurs constructeurs en Python.
Constructeurs en Python
Dans les langages de programmation comme Java, C++ et C#, nous avons le concept d’une fonction constructeur qui ne s’exécute que lorsqu’un objet de la classe est initialisé. La fonction constructeur est utilisée pour initialiser tous les attributs de la classe. Le nom de cette fonction constructeur est le même que le nom de la classe. Le concept de la fonction constructeur est le même en Python mais, le nom de la fonction constructeur est __init__()
pour toutes les classes. Le constructeur en Python prend toujours un paramètre, c’est-à-dire un pointeur vers l’objet appelant. L’extrait de code suivant montre comment nous pouvons créer un constructeur non paramétré en Python.
class Person:
def __init__(self):
print("Constructor Function")
if __name__ == "__main__":
p1 = Person()
Production :
Constructor Function
Nous avons créé un constructeur non paramétré pour la classe Person
et créé un objet de classe Person
dans la fonction principale. Le constructeur a été appelé lorsque nous avons créé l’objet avec p1 = Person()
.
Plusieurs constructeurs en Python
Dans les langages de programmation Java, C# et C++, il existe un concept appelé constructeurs multiples où nous pouvons créer autant de constructeurs pour une même classe que nous le souhaitons. Malheureusement, nous ne pouvons pas définir plusieurs constructeurs pour une seule classe en Python. Une méthode générale pour contourner cette limitation consiste à utiliser un constructeur de paramètres par défaut. Un constructeur de paramètres par défaut est celui qui attribue automatiquement une valeur à ses attributs de classe si aucun paramètre n’est passé lors de la création de l’objet de classe. Le constructeur de paramètre par défaut affecte la valeur spécifiée à l’attribut de classe si une valeur est spécifiée lors de la création de l’objet. L’extrait de code suivant montre comment éliminer le besoin de plusieurs constructeurs avec le constructeur de paramètres par défaut en Python.
class Person:
def __init__(self, name="Tom"):
self.name = name
def show(self):
print("Name = ", self.name)
if __name__ == "__main__":
p1 = Person()
p2 = Person("Mark")
p1.show()
p2.show()
Production :
Name = Tom
Name = Mark
Nous avons créé un constructeur de paramètres par défaut dans le code ci-dessus en spécifiant la valeur par défaut lors de la définition de la fonction. Le constructeur de la classe Person
prend un nom de paramètre et l’affecte au paramètre de classe name
. La valeur par défaut du nom du paramètre est Tom
. Nous avons créé deux objets p1
et p2
de la classe Person
dans la fonction main
. L’objet p1
ne précise aucune valeur lors de l’initialisation ; l’objet p2
passe Mark
comme paramètre du constructeur. Nous avons ensuite appelé la fonction show()
avec p1
et p2
. La fonction show()
affiche la valeur de l’attribut name
. Lorsque p1
appelle la fonction show()
, la sortie est la valeur par défaut Name = Tom
, mais lorsque p2
appelle la fonction show()
, la sortie est Name = Mark
car nous avons spécifié Mark
lors de la création de l’objet p2
.
Maisam is a highly skilled and motivated Data Scientist. He has over 4 years of experience with Python programming language. He loves solving complex problems and sharing his results on the internet.
LinkedIn