Requisits previs: Programació orientada a objectes en Python, orientada a objectes Python 3
Python 3
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()> |
>
intenció intenció
>Sortida
superíndex en il·lustrador
GeekforGeeks>
Exemple de la constructor parametritzat:
Python 3
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()> |
>
>Sortida
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()> |
js variable global
>
>Sortida
Default constructor called Method called without a name ('Parameterized constructor called with name', 'John') ('Method called with name', 'John')> Explicació:
En aquest exemple, definim una classe MyClass amb un constructor predeterminat i un constructor parametritzat. El constructor predeterminat comprova si s'ha passat un paràmetre o no i imprimeix un missatge a la consola en conseqüència. El constructor parametritzat pren un sol nom de paràmetre i estableix l'atribut de nom de l'objecte al valor d'aquest paràmetre.
També definim un mètode method() que verifica si l'objecte té un atribut de nom o no, i imprimeix un missatge a la consola en conseqüència.
Creem dos objectes de la classe MyClass utilitzant els dos tipus de constructors. Primer, creem un objecte utilitzant el constructor per defecte, que imprimeix el missatge Constructor per defecte cridat a la consola. Aleshores cridem al mètode method() d'aquest objecte, que imprimeix el missatge Method called sense nom a la consola.
A continuació, creem un objecte utilitzant el constructor parametritzat, passant el nom John. El constructor es crida automàticament i s'imprimeix a la consola el missatge Constructor parametritzat anomenat amb el nom de John. Aleshores cridem al mètode method() en aquest objecte, que imprimeix el missatge Method called with name John a la consola.
En general, aquest exemple mostra com es poden implementar ambdós tipus de constructors en una sola classe a Python.
fer el bucle while a java
Avantatges d'utilitzar constructors en Python:
- Inicialització d'objectes: els constructors s'utilitzen per inicialitzar els objectes d'una classe. Us permeten establir valors per defecte per a atributs o propietats i també us permeten inicialitzar l'objecte amb dades personalitzades. Fàcil d'implementar: els constructors són fàcils d'implementar a Python i es poden definir mitjançant el mètode __init__().
- Millor llegibilitat: els constructors milloren la llegibilitat del codi deixant clar quins valors s'estan inicialitzant i com s'inicien. Encapsulació: els constructors es poden utilitzar per fer complir l'encapsulació, assegurant que els atributs de l'objecte s'inicialitzen correctament i de manera controlada.
Desavantatges d'utilitzar constructors a Python:
- No s'admet la sobrecàrrega: a diferència d'altres llenguatges orientats a objectes, Python no admet la sobrecàrrega de mètodes. Això vol dir que no podeu tenir diversos constructors amb diferents paràmetres en una sola classe. Funcionalitat limitada: els constructors de Python tenen una funcionalitat limitada en comparació amb els constructors d'altres llenguatges de programació. Per exemple, Python no té constructors amb modificadors d'accés com públic, privat o protegit. Els constructors poden ser innecessaris: en alguns casos, els constructors poden no ser necessaris, ja que els valors per defecte dels atributs poden ser suficients. En aquests casos, l'ús d'un constructor pot afegir complexitat innecessària al codi.
En general, els constructors de Python poden ser útils per inicialitzar objectes i fer complir l'encapsulació. Tanmateix, pot ser que no sempre siguin necessaris i tinguin una funcionalitat limitada en comparació amb els constructors d'altres llenguatges de programació.