logo

__init__ i Python

__init__ metode i Python bruges til at initialisere objekter i en klasse. Det kaldes også en konstruktør.

For fuldstændigt at forstå begrebet __init__ metode, bør du være bekendt med:

Forudsætninger – Python klasse og objekter , Selv



Hvad er __init__ i Python?

__init__ metode er som standard konstruktør i C++ og Java . Konstruktører bruges til at initialisere objektets tilstand.

Konstruktørernes opgave er at initialisere (tildele værdier) til datamedlemmerne i klassen, når et objekt i klassen oprettes.

Ligesom metoder indeholder en konstruktør også en samling af udsagn (dvs. instruktioner), der udføres på tidspunktet for objektoprettelse. Det køres, så snart et objekt i en klasse er instantieret.

Metoden er nyttig til at udføre enhver initialisering, du ønsker at gøre med dit objekt.

Python3


kø og prioritetskø i java



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

>

>

Produktion:

Hello, my name is Nikhil>

Forståelse af koden

I ovenstående eksempel er en person ved navn Nikhil oprettet. Mens du opretter en person, overføres Nikhil som et argument, dette argument vil blive videregivet til __init__ metoden for at initialisere objektet.

Nøgleordet self repræsenterer forekomsten af ​​en klasse og binder attributterne med de givne argumenter. På samme måde kan mange objekter i klassen Person oprettes ved at sende forskellige navne som argumenter.

Nedenfor er eksemplet på __ init__ i Python med parametre

Eksempel på __init__ metode i Python

Lad os se på nogle eksempler på __init__-metoden i Python.

Python3




forekomst af java

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

>

>

Produktion:

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

__init__ Metode med arv

Arv er en klasses evne til at udlede eller arve egenskaberne fra en anden klasse. Lad os overveje nedenstående eksempel for at se, hvordan __init__ fungerer i arv.

Python3

nfa til dfa konvertering




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

>

>

Produktion:

A init called B init called>

Så den overordnede klassekonstruktør kaldes først. Men i Python er det ikke obligatorisk, at den overordnede klassekonstruktør altid kaldes først.

Den rækkefølge, som metoden __init__ kaldes for en forælder eller en underordnet klasse, kan ændres. Dette kan ganske enkelt gøres ved at kalde den overordnede klassekonstruktør efter kroppen af ​​den underordnede klassekonstruktør.

Eksempel:

Python3




java tråd oprette
# 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'>)>

>

>

Produktion:

B init called A init called>

Læs : Arv i Python

Vi har dækket __init__ i Python, diskuteret, hvordan man bruger __init__, og også set nogle eksempler på at bruge __init__ metoden i Python.

Konstruktør er et afgørende koncept i OOP'er, og __init__-metoden minder meget om konstruktører.

Håber denne artikel hjalp dig med at lære __init__ metoden, og du vil være i stand til at bruge den i dine projekter.

Relateret artikel

  • Er __init__() en privat metode i Python?
  • Hvad er forskellen mellem __init__ og __call__?
  • __ny__ i Python