logo

__init__ Python

__init__ metodas Python yra naudojamas klasės objektams inicijuoti. Jis taip pat vadinamas konstruktoriumi.

Norėdami visiškai suprasti __init__ metodo sąvoką, turėtumėte žinoti:

Būtinos sąlygos – Python klasė ir objektai , Savarankiškai



Kas yra __init__ Python?

__init__ metodas yra kaip numatytasis konstruktorius C++ ir Java . Konstruktoriai naudojami objekto būsenai inicijuoti.

Konstruktorių užduotis yra inicijuoti (priskirti reikšmes) klasės duomenų nariams, kai sukuriamas klasės objektas.

Kaip ir metodai, konstruktorius taip pat turi teiginių (ty instrukcijų), kurie vykdomi kuriant objektą, rinkinį. Jis paleidžiamas, kai tik sukuriamas klasės objektas.

Šis metodas yra naudingas norint atlikti bet kokią inicijaciją, kurią norite atlikti su objektu.

Python3


git status -s



# A Sample class with init method> class> Person:> ># init method or constructor> >def> __init__(>self>, name):> >self>.name>=> name> ># Sample Method> >def> say_hi(>self>):> >print>(>'Hello, my name is'>,>self>.name)> p>=> Person(>'Nikhil'>)> p.say_hi()>

>

>

java rinkinys

Išvestis:

Hello, my name is Nikhil>

Kodo supratimas

Aukščiau pateiktame pavyzdyje sukurtas asmuo vardu Nikhilas. Kuriant asmenį Nikhilas perduodamas kaip argumentas, šis argumentas bus perduotas __init__ metodui, norint inicijuoti objektą.

Raktinis žodis self reiškia klasės egzempliorių ir susieja atributus nurodytais argumentais. Panašiai daugelis Asmens klasės objektų gali būti sukurti pateikiant skirtingus pavadinimus kaip argumentus.

Žemiau pateikiamas __ pavyzdys init__ Python su parametrais

Python metodo __init__ pavyzdys

Pažvelkime į keletą Python metodo __init__ pavyzdžių.

Python3




# A Sample class with init method> class> Person:> ># init method or constructor> >def> __init__(>self>, name):> >self>.name>=> name> ># Sample Method> >def> say_hi(>self>):> >print>(>'Hello, my name is'>,>self>.name)> # Creating different objects> p1>=> Person(>'Nikhil'>)> p2>=> Person(>'Abhinav'>)> p3>=> Person(>'Anshul'>)> p1.say_hi()> p2.say_hi()> p3.say_hi()>

>

>

Išvestis:

Hello, my name is Nikhil Hello, my name is Abhinav Hello, my name is Anshul>

__init__ Metodas su paveldėjimu

Paveldėjimas yra vienos klasės galimybė išvesti arba paveldėti savybes iš kitos klasės. Panagrinėkime toliau pateiktą pavyzdį, kad pamatytume, kaip __init__ veikia paveldint.

Python3

ms word greitosios prieigos įrankių juosta




# Python program to> # demonstrate init with> # inheritance> class> A(>object>):> >def> __init__(>self>, something):> >print>(>'A init called'>)> >self>.something>=> something> class> B(A):> >def> __init__(>self>, something):> ># Calling init of parent class> >A.__init__(>self>, something)> >print>(>'B init called'>)> >self>.something>=> something> obj>=> B(>'Something'>)>

>

>

Išvestis:

A init called B init called>

Taigi pirmiausia iškviečiamas pirminės klasės konstruktorius. Tačiau Python nėra privaloma, kad pirminės klasės konstruktorius visada būtų iškviestas pirmas.

Galima keisti tvarką, kuria iškviečiamas __init__ metodas pirminei arba antrinei klasei. Tai galima padaryti tiesiog iškviečiant pirminės klasės konstruktorių po antrinės klasės konstruktoriaus kūno.

Pavyzdys:

Python3


eilutė tarpt



# Python program to> # demonstrate init with> # inheritance> class> A(>object>):> >def> __init__(>self>, something):> >print>(>'A init called'>)> >self>.something>=> something> class> B(A):> >def> __init__(>self>, something):> >print>(>'B init called'>)> >self>.something>=> something> ># Calling init of parent class> >A.__init__(>self>, something)> obj>=> B(>'Something'>)>

>

>

Išvestis:

B init called A init called>

Skaityti : Paveldėjimas Python

Apžvelgėme __init__ Python, aptarėme, kaip naudoti __init__, taip pat matėme keletą metodo __init__ naudojimo Python.

Konstruktorius yra esminė OOP sąvoka, o __init__ metodas yra labai panašus į konstruktorius.

Tikimės, kad šis straipsnis padėjo jums išmokti __init__ metodą ir galėsite jį naudoti savo projektuose.

Susijęs straipsnis

  • Ar __init__() yra privatus metodas Python?
  • Kuo skiriasi __init__ ir __call__?
  • __naujas__ Python