__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