__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




# 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




# 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




# 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




# 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