Plusieurs constructeurs Python

Muhammad Maisam Abbas 10 octobre 2023
  1. Constructeurs en Python
  2. Plusieurs constructeurs en Python
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.

Muhammad Maisam Abbas avatar Muhammad Maisam Abbas avatar

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

Article connexe - Python Constructor