__init__ i Python
__init__ metod i Python används för att initiera objekt i en klass. Det kallas också en konstruktör.
För att helt förstå konceptet med __init__-metoden bör du vara bekant med:
Förutsättningar – Python-klass och objekt , Själv
Vad är __init__ i Python?
__init__ metod är som standardkonstruktor i C++ och Java . Konstruktörer används för att initiera objektets tillstånd.
Konstruktörernas uppgift är att initialisera (tilldela värden) till datamedlemmarna i klassen när ett objekt i klassen skapas.
Liksom metoder innehåller en konstruktor också en samling satser (dvs instruktioner) som exekveras vid tidpunkten för objektskapandet. Den körs så snart ett objekt i en klass instansieras.
Metoden är användbar för att göra vilken initiering du vill göra med ditt 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
Förstå koden
I exemplet ovan skapas en person som heter Nikhil. När du skapar en person skickas Nikhil som ett argument, detta argument kommer att skickas till metoden __init__ för att initiera objektet.
Nyckelordet själv representerar förekomsten av en klass och binder attributen med de givna argumenten. På samma sätt kan många objekt i klassen Person skapas genom att skicka olika namn som argument.
Nedan är exemplet på __ init__ i Python med parametrar
Exempel på metoden __init__ i Python
Låt oss titta på några exempel 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__ Metod med arv
Arv är förmågan hos en klass att härleda eller ärva egenskaperna från någon annan klass. Låt oss överväga exemplet nedan för att se hur __init__ fungerar 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 överordnade klasskonstruktorn anropas först. Men i Python är det inte obligatoriskt att den överordnade klasskonstruktören alltid anropas först.
Ordningen i vilken __init__-metoden anropas för en förälder eller en underordnad klass kan ändras. Detta kan helt enkelt göras genom att anropa den överordnade klasskonstruktören efter kroppen av den underordnade klasskonstruktorn.
Exempel:
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äsa : Arv i Python
Vi har täckt __init__ i Python, diskuterat hur man använder __init__ och även sett några exempel på hur man använder metoden __init__ i Python.
Constructor är ett avgörande koncept i OOPs, och __init__-metoden är mycket lik konstruktörer.
Hoppas den här artikeln hjälpte dig att lära dig __init__-metoden, och att du kommer att kunna använda den i dina projekt.
Relaterad artikel
- Är __init__() en privat metod i Python?
- Vad är skillnaden mellan __init__ och __call__?
- __ny__ i Python