metoda __init__ w Pythonie służy do inicjowania obiektów klasy. Nazywa się go również konstruktorem.
Aby w pełni zrozumieć koncepcję metody __init__, powinieneś znać:
Warunki wstępne – Klasy i obiekty w Pythonie , Samego siebie
Co to jest __init__ w Pythonie?
metoda __init__ jest jak domyślny konstruktor w C++ I Jawa . Konstruktory służą do inicjowania stanu obiektu.
Zadaniem konstruktorów jest inicjowanie (przypisywanie wartości) członom danych klasy podczas tworzenia obiektu klasy.
Podobnie jak metody, konstruktor również zawiera zbiór instrukcji (tj. instrukcji), które są wykonywane w momencie tworzenia obiektu. Jest uruchamiany natychmiast po utworzeniu instancji obiektu klasy.
Metoda ta jest przydatna do wykonania dowolnej inicjalizacji obiektu.
Python3
es5 kontra es6
# 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()> |
>
>
Wyjście:
Hello, my name is Nikhil>
Zrozumienie kodu
W powyższym przykładzie tworzona jest osoba o imieniu Nikhil. Podczas tworzenia osoby jako argument przekazywany jest Nikhil, który zostanie przekazany do metody __init__ w celu zainicjowania obiektu.
przekreślenie przeceny
Słowo kluczowe self reprezentuje instancję klasy i wiąże atrybuty z podanymi argumentami. Podobnie wiele obiektów klasy Person można utworzyć, przekazując różne nazwy jako argumenty.
Poniżej znajduje się przykład __ init__ w Pythonie z parametrami
Przykład metody __init__ w Pythonie
Przyjrzyjmy się kilku przykładom metody __init__ w Pythonie.
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()> |
>
>
Wyjście:
Hello, my name is Nikhil Hello, my name is Abhinav Hello, my name is Anshul>
__init__ Metoda z dziedziczeniem
Dziedzictwo to zdolność jednej klasy do wyprowadzania lub dziedziczenia właściwości innej klasy. Rozważmy poniższy przykład, aby zobaczyć, jak __init__ działa w przypadku dziedziczenia.
Python3
kod abs-c
# 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'>)> |
>
>
Wyjście:
A init called B init called>
Zatem najpierw wywoływany jest konstruktor klasy nadrzędnej. Jednak w Pythonie nie jest obowiązkowe, aby konstruktor klasy nadrzędnej był zawsze wywoływany jako pierwszy.
Można modyfikować kolejność wywoływania metody __init__ dla klasy nadrzędnej lub podrzędnej. Można to po prostu zrobić, wywołując konstruktor klasy nadrzędnej po treści konstruktora klasy podrzędnej.
Przykład:
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'>)> |
>
znaczenie dhl
>
Wyjście:
B init called A init called>
Czytać : Dziedziczenie w Pythonie
Omówiliśmy __init__ w Pythonie, omówiliśmy, jak używać __init__, a także widzieliśmy kilka przykładów użycia metody __init__ w Pythonie.
Konstruktor jest kluczową koncepcją w obiektach OOP, a metoda __init__ jest bardzo podobna do konstruktorów.
Mam nadzieję, że ten artykuł pomógł Ci w nauce metody __init__ i będziesz mógł używać jej w swoich projektach.
Powiązany artykuł
- Czy __init__() jest metodą prywatną w Pythonie?
- Jaka jest różnica między __init__ i __call__?
- __nowy__ w Pythonie