__init__ i Python
__init__ metode i Python brukes til å initialisere objekter i en klasse. Det kalles også en konstruktør.
For å forstå konseptet med __init__ metoden, bør du være kjent med:
Forutsetninger – Python-klasse og objekter , Selv
Hva er __init__ i Python?
__init__ metode er som standard konstruktør i C++ og Java . Konstruktører brukes til å initialisere objektets tilstand.
Oppgaven til konstruktører er å initialisere (tildele verdier) til datamedlemmene i klassen når et objekt i klassen opprettes.
I likhet med metoder, inneholder en konstruktør også en samling av setninger (dvs. instruksjoner) som utføres på tidspunktet for objektoppretting. Den kjøres så snart et objekt i en klasse er instansiert.
Metoden er nyttig for å gjøre enhver initialisering du vil gjøre med objektet ditt.
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()> |
Produksjon:
Hello, my name is Nikhil
Forstå koden
I eksemplet ovenfor opprettes en person som heter Nikhil. Mens du oppretter en person, sendes Nikhil som et argument, dette argumentet vil bli sendt til __init__-metoden for å initialisere objektet.
Nøkkelordet selv representerer forekomsten av en klasse og binder attributtene med de gitte argumentene. På samme måte kan mange objekter i Person-klassen opprettes ved å sende forskjellige navn som argumenter.
Nedenfor er eksemplet på __ init__ i Python med parametere
Eksempel på __init__ metode i Python
La oss se på noen 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()> |
Produksjon:
Hello, my name is Nikhil Hello, my name is Abhinav Hello, my name is Anshul
__init__ Metode med arv
Arv er evnen til en klasse til å utlede eller arve egenskapene fra en annen klasse. La oss vurdere eksemplet nedenfor for å 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'> )> |
Produksjon:
A init called B init called
Så den overordnede klassekonstruktøren kalles først. Men i Python er det ikke obligatorisk at den overordnede klassekonstruktøren alltid kalles først.
Rekkefølgen som __init__-metoden kalles for en overordnet eller en underordnet klasse, kan endres. Dette kan ganske enkelt gjøres ved å kalle den overordnede klassekonstruktøren etter kroppen til den underordnede klassekonstruktøren.
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'> )> |
Produksjon:
B init called A init called
Lese : Arv i Python
Vi har dekket __init__ i Python, diskutert hvordan man bruker __init__, og også sett noen eksempler på bruk av __init__-metoden i Python.
Konstruktør er et avgjørende konsept i OOPs, og __init__-metoden er veldig lik konstruktører.
Håper denne artikkelen hjalp deg med å lære __init__-metoden, og at du vil kunne bruke den i prosjektene dine.
Relatert artikkel
- Er __init__() en privat metode i Python?
- Hva er forskjellen mellom __init__ og __call__?
- __ny__ i Python