__init__ v Pythonu

metoda __init__ v Pythonu se používá k inicializaci objektů třídy. Říká se mu také konstruktor.

Abyste zcela porozuměli konceptu metody __init__, měli byste znát:

Předpoklady – Třída a objekty Pythonu ,

Co je __init__ v Pythonu?

metoda __init__ je jako výchozí konstruktor v C++ a Jáva . Konstruktory se používají k inicializaci stavu objektu.

Úkolem konstruktorů je inicializovat (přiřadit hodnoty) datovým členům třídy, když je vytvořen objekt třídy.

Stejně jako metody obsahuje konstruktor také kolekci příkazů (tj. instrukcí), které se provádějí v okamžiku vytvoření objektu. Spustí se, jakmile je vytvořena instance objektu třídy.

Metoda je užitečná k provedení jakékoli inicializace, kterou chcete s objektem provést.

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()>

Výstup:

Hello, my name is Nikhil 

Pochopení kódu

Ve výše uvedeném příkladu je vytvořena osoba jménem Nikhil. Při vytváření osoby je Nikhil předán jako argument, tento argument bude předán metodě __init__ k inicializaci objektu.

Klíčové slovo self představuje instanci třídy a váže atributy s danými argumenty. Podobně lze mnoho objektů třídy Person vytvořit předáním různých jmen jako argumentů.

Níže je příklad __ init__ v Pythonu s parametry

Příklad metody __init__ v Pythonu

Podívejme se na některé příklady metody __init__ v Pythonu.

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()>

Výstup:

Hello, my name is Nikhil Hello, my name is Abhinav Hello, my name is Anshul 

__init__ Metoda s dědičností

Dědictví je schopnost jedné třídy odvozovat nebo zdědit vlastnosti z jiné třídy. Podívejme se na níže uvedený příklad, abychom viděli, jak __init__ funguje při dědění.

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'> )>

Výstup:

A init called B init called 

Nejprve se tedy zavolá konstruktor rodičovské třídy. Ale v Pythonu není povinné, aby byl konstruktor rodičovské třídy vždy volán jako první.

Pořadí, ve kterém je volána metoda __init__ pro nadřazenou nebo podřízenou třídu, lze upravit. To lze jednoduše provést voláním konstruktoru nadřazené třídy po těle konstruktoru podřízené třídy.

Příklad:

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'> )>

Výstup:

B init called A init called 

Číst : Dědičnost v Pythonu

Probrali jsme __init__ v Pythonu, diskutovali o tom, jak používat __init__, a také jsme viděli několik příkladů použití metody __init__ v Pythonu.

Konstruktor je klíčový koncept v OOP a metoda __init__ je velmi podobná konstruktorům.

Doufám, že vám tento článek pomohl při učení metody __init__ a budete ji moci používat ve svých projektech.

Související článek

  • Je __init__() soukromá metoda v Pythonu?
  • Jaký je rozdíl mezi __init__ a __call__?
  • __nové__ v Pythonu