logo

Konstruktoriai Python

Būtinos sąlygos: Objektinis programavimas Python, Objektinis Python3

Python3






kas yra java hashmap



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()>

>



>

Išvestis

GeekforGeeks>

Pavyzdys parametrizuotas konstruktorius:

Python3




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()>

>

>

Išvestis

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

Pavyzdys:

Python


kas yra build-essential ubuntu



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()>

concat java eilutė

>

>

Išvestis

Default constructor called Method called without a name ('Parameterized constructor called with name', 'John') ('Method called with name', 'John')>

Paaiškinimas:

Šiame pavyzdyje mes apibrėžiame klasę MyClass su numatytuoju konstruktoriumi ir parametrizuotu konstruktoriumi. Numatytasis konstruktorius patikrina, ar parametras buvo perduotas, ar ne, ir atitinkamai išspausdina pranešimą į konsolę. Konstruktorius su parametrais įveda vieną parametro pavadinimą ir nustato objekto pavadinimo atributą į to parametro reikšmę.

Taip pat apibrėžiame metodą method(), kuris patikrina, ar objektas turi pavadinimo atributą, ar ne, ir atitinkamai išspausdina pranešimą į konsolę.

Sukuriame du MyClass klasės objektus naudodami abiejų tipų konstruktorius. Pirmiausia sukuriame objektą naudodami numatytąjį konstruktorių, kuris atspausdina pranešimą Numatytasis konstruktorius, iškviestas į konsolę. Tada iškviečiame metodą () šiame objekte, kuris išspausdina pranešimą Method call be pavadinimo į konsolę.

Toliau mes sukuriame objektą naudodami parametrizuotą konstruktorių, įvesdami vardą John. Konstruktorius iškviečiamas automatiškai, o į konsolę atspausdinamas pranešimas Parameterized konstruktorius iškviestas vardu Jonas. Tada iškviečiame metodą () šiame objekte, kuris į konsolę išspausdina pranešimą Method vadinamas vardu John.

Apskritai šis pavyzdys parodo, kaip vienoje Python klasėje galima įdiegti abu konstruktorių tipus.

Konstruktorių naudojimo Python privalumai:

    Objektų inicijavimas: Konstruktoriai naudojami klasės objektams inicijuoti. Jie leidžia nustatyti numatytąsias atributų ar savybių reikšmes, taip pat leidžia inicijuoti objektą naudojant pasirinktinius duomenis. Lengva įdiegti: konstruktorius lengva įdiegti naudojant Python ir juos galima apibrėžti naudojant __init__() metodą.
  • Geresnis skaitomumas: Konstruktoriai pagerina kodo skaitomumą, aiškiai parodydami, kokios reikšmės inicijuojamos ir kaip jos inicijuojamos.
  • Inkapsuliavimas : Konstruktoriai gali būti naudojami inkapsuliavimui užtikrinti, užtikrinant, kad objekto atributai būtų inicijuojami teisingai ir kontroliuojamai.

Konstruktorių naudojimo Python trūkumai:

    Perkrovimas nepalaikomas: skirtingai nei kitos į objektus orientuotos kalbos, Python nepalaiko metodų perkrovimo. Tai reiškia, kad vienoje klasėje negalite turėti kelių konstruktorių su skirtingais parametrais. Ribotos funkcijos: Python konstruktorių funkcionalumas yra ribotas, palyginti su kitų programavimo kalbų konstruktoriais. Pavyzdžiui, Python neturi konstruktorių su prieigos modifikatoriais, tokiais kaip viešasis, privatus ar apsaugotas. Konstruktoriai gali būti nereikalingi: kai kuriais atvejais konstruktoriai gali būti nereikalingi, nes gali pakakti numatytųjų atributų reikšmių. Tokiais atvejais konstruktoriaus naudojimas gali papildyti kodą nereikalingu sudėtingumu.

Apskritai „Python“ konstruktoriai gali būti naudingi inicijuojant objektus ir užtikrinant inkapsuliavimą. Tačiau jie ne visada gali būti būtini ir jų funkcionalumas yra ribotas, palyginti su kitų programavimo kalbų konstruktoriais.