__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