logo

Constructeurs en Python

Conditions préalables: Programmation orientée objet en Python , Orienté objet Python3

Python3




âge ensoleillé deol



class> GeekforGeeks:> ># default constructor> >def> __init__(>self>):> >self>.geek>=> 'GeekforGeeks'> ># a method for printing data members> >def> print_Geek(>self>):> >print>(>self>.geek)> # creating object of the class> obj>=> GeekforGeeks()> # calling the instance method using the object obj> obj.print_Geek()>

>

>

Sortir

GeekforGeeks>

Exemple du constructeur paramétré :

Python3


booléen en chaîne



class> Addition:> >first>=> 0> >second>=> 0> >answer>=> 0> ># parameterized constructor> >def> __init__(>self>, f, s):> >self>.first>=> f> >self>.second>=> s> >def> display(>self>):> >print>(>'First number = '> +> str>(>self>.first))> >print>(>'Second number = '> +> str>(>self>.second))> >print>(>'Addition of two numbers = '> +> str>(>self>.answer))> >def> calculate(>self>):> >self>.answer>=> self>.first>+> self>.second> # creating object of the class> # this will invoke parameterized constructor> obj1>=> Addition(>1000>,>2000>)> # creating second object of same class> obj2>=> Addition(>10>,>20>)> # perform Addition on obj1> obj1.calculate()> # perform Addition on obj2> obj2.calculate()> # display result of obj1> obj1.display()> # display result of obj2> obj2.display()>

chmod 755

>

>

Sortir

First number = 1000 Second number = 2000 Addition of two numbers = 3000 First number = 10 Second number = 20 Addition of two numbers = 30>

Exemple:

Python




class> MyClass:> >def> __init__(>self>, name>=>None>):> >if> name>is> None>:> >print>(>'Default constructor called'>)> >else>:> >self>.name>=> name> >print>(>'Parameterized constructor called with name'>,>self>.name)> > >def> method(>self>):> >if> hasattr>(>self>,>'name'>):> >print>(>'Method called with name'>,>self>.name)> >else>:> >print>(>'Method called without a name'>)> # Create an object of the class using the default constructor> obj1>=> MyClass()> # Call a method of the class> obj1.method()> # Create an object of the class using the parameterized constructor> obj2>=> MyClass(>'John'>)> # Call a method of the class> obj2.method()>

combien de zéro pour un million

>

>

Sortir

exemple de liste en java
Default constructor called Method called without a name ('Parameterized constructor called with name', 'John') ('Method called with name', 'John')>

Explication:

Dans cet exemple, nous définissons une classe MyClass avec à la fois un constructeur par défaut et un constructeur paramétré. Le constructeur par défaut vérifie si un paramètre a été transmis ou non et imprime un message sur la console en conséquence. Le constructeur paramétré prend un seul nom de paramètre et définit l'attribut name de l'objet sur la valeur de ce paramètre.

Nous définissons également une méthode method() qui vérifie si l'objet a un attribut name ou non et imprime un message sur la console en conséquence.

Nous créons deux objets de la classe MyClass en utilisant les deux types de constructeurs. Tout d’abord, nous créons un objet en utilisant le constructeur par défaut, qui imprime le message Constructeur par défaut appelé sur la console. On appelle ensuite la méthode method() sur cet objet, qui imprime le message Méthode appelée sans nom sur la console.

Ensuite, nous créons un objet en utilisant le constructeur paramétré, en passant le nom John. Le constructeur est appelé automatiquement et le message Constructeur paramétré appelé avec le nom John est imprimé sur la console. Nous appelons ensuite la méthode method() sur cet objet, qui imprime le message Méthode appelée avec le nom John sur la console.

Dans l'ensemble, cet exemple montre comment les deux types de constructeurs peuvent être implémentés dans une seule classe en Python.

Avantages de l'utilisation de constructeurs en Python :

    Initialisation des objets : Les constructeurs servent à initialiser les objets d'une classe. Ils vous permettent de définir des valeurs par défaut pour les attributs ou les propriétés, et vous permettent également d'initialiser l'objet avec des données personnalisées. Facile à implémenter : les constructeurs sont faciles à implémenter en Python et peuvent être définis à l'aide de la méthode __init__().
  • Meilleure lisibilité : les constructeurs améliorent la lisibilité du code en indiquant clairement quelles valeurs sont initialisées et comment elles sont initialisées.
  • Encapsulation : Les constructeurs peuvent être utilisés pour appliquer l'encapsulation, en garantissant que les attributs de l'objet sont initialisés correctement et de manière contrôlée.

Inconvénients de l'utilisation de constructeurs en Python :

    Surcharge non prise en charge : contrairement à d'autres langages orientés objet, Python ne prend pas en charge la surcharge de méthodes. Cela signifie que vous ne pouvez pas avoir plusieurs constructeurs avec des paramètres différents dans une seule classe. Fonctionnalité limitée : les constructeurs en Python sont limités dans leurs fonctionnalités par rapport aux constructeurs d'autres langages de programmation. Par exemple, Python n'a pas de constructeurs avec des modificateurs d'accès comme public, private ou protected. Les constructeurs peuvent être inutiles : dans certains cas, les constructeurs peuvent ne pas être nécessaires, car les valeurs par défaut des attributs peuvent être suffisantes. Dans ces cas, l’utilisation d’un constructeur peut ajouter une complexité inutile au code.

Dans l'ensemble, les constructeurs en Python peuvent être utiles pour initialiser des objets et appliquer l'encapsulation. Cependant, ils ne sont pas toujours nécessaires et leurs fonctionnalités sont limitées par rapport aux constructeurs d’autres langages de programmation.