logo

__init__ v Pythonu

metoda __init__ v Pythonu se uporablja za inicializacijo objektov razreda. Imenuje se tudi konstruktor.

Če želite popolnoma razumeti koncept metode __init__, morate poznati:

Predpogoji – Razred in predmeti Python , Sebe



Kaj je __init__ v Pythonu?

metoda __init__ je kot privzeti konstruktor v C++ in Java . Konstruktorji se uporabljajo za inicializacijo stanja objekta.

Naloga konstruktorjev je inicializirati (dodeliti vrednosti) podatkovnim članom razreda, ko je objekt razreda ustvarjen.

Tako kot metode tudi konstruktor vsebuje zbirko stavkov (tj. navodil), ki se izvedejo v času ustvarjanja objekta. Zažene se takoj, ko se objekt razreda instancira.

Metoda je uporabna za kakršno koli inicializacijo, ki jo želite izvesti s svojim objektom.

Python3


kako prenesti glasbo



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

>

>

Izhod:

Hello, my name is Nikhil>

Razumevanje kode

V zgornjem primeru je ustvarjena oseba z imenom Nikhil. Med ustvarjanjem osebe se Nikhil posreduje kot argument, ta argument bo posredovan metodi __init__ za inicializacijo predmeta.

Ključna beseda self predstavlja primerek razreda in povezuje atribute z danimi argumenti. Podobno lahko številne objekte razreda Oseba ustvarite s posredovanjem različnih imen kot argumentov.

Spodaj je primer __ init__ v Pythonu s parametri

Primer metode __init__ v Pythonu

Oglejmo si nekaj primerov metode __init__ v Pythonu.

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

>

q1 q2 q3 q4

>

Izhod:

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

__init__ Metoda z dedovanjem

Dedovanje je zmožnost enega razreda, da izpelje ali podeduje lastnosti iz drugega razreda. Oglejmo si spodnji primer, da vidimo, kako __init__ deluje pri dedovanju.

Python3

java seznam prazen




# 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'>)>

>

>

Izhod:

A init called B init called>

Torej, najprej se pokliče konstruktor nadrejenega razreda. Toda v Pythonu ni obvezno, da bo konstruktor nadrejenega razreda vedno najprej poklican.

ssis vadnica

Vrstni red, v katerem se kliče metoda __init__ za nadrejeni ali podrejeni razred, je mogoče spremeniti. To lahko preprosto storite s klicem konstruktorja nadrejenega razreda za telesom konstruktorja podrejenega razreda.

primer:

Python3




# 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'>)>

>

>

Izhod:

B init called A init called>

Preberi : Dedovanje v Pythonu

Obravnavali smo __init__ v Pythonu, razpravljali o uporabi __init__ in videli tudi nekaj primerov uporabe metode __init__ v Pythonu.

Konstruktor je ključni koncept v OOP-jih, metoda __init__ pa je zelo podobna konstruktorjem.

Upam, da vam je ta članek pomagal pri učenju metode __init__ in jo boste lahko uporabili v svojih projektih.

Sorodni članek

  • Ali je __init__() zasebna metoda v Pythonu?
  • Kakšna je razlika med __init__ in __call__?
  • __novo__ v Pythonu