метод __init__ у Python використовується для ініціалізації об’єктів класу. Його ще називають конструктором.
Щоб повністю зрозуміти концепцію методу __init__, ви повинні ознайомитися з:
Передумови – Клас і об’єкти Python , себе
Що таке __init__ у Python?
метод __init__ схожий на конструктор за замовчуванням у C++ і Java . Конструктори використовуються для ініціалізації стану об’єкта.
Завдання конструкторів полягає в тому, щоб ініціалізувати (призначити значення) членам даних класу під час створення об’єкта класу.
Як і методи, конструктор також містить набір інструкцій (тобто інструкцій), які виконуються під час створення об’єкта. Він запускається, як тільки створюється екземпляр об’єкта класу.
Метод корисний для виконання будь-якої ініціалізації, яку ви хочете виконати з вашим об’єктом.
Python3
fizzbuzz java
# 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()> |
>
>
Вихід:
Hello, my name is Nikhil>
Розуміння коду
У наведеному вище прикладі створюється особа на ім’я Ніхіл. Під час створення особи Nikhil передається як аргумент, цей аргумент буде передано методу __init__ для ініціалізації об’єкта.
Ключове слово self представляє екземпляр класу та пов’язує атрибути з заданими аргументами. Подібним чином багато об’єктів класу Person можна створити, передаючи різні імена як аргументи.
Нижче наведено приклад __ init__ у Python із параметрами
Приклад методу __init__ у Python
Давайте розглянемо кілька прикладів методу __init__ у Python.
Python3
java цикл while
# 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()> |
>
>
Вихід:
Hello, my name is Nikhil Hello, my name is Abhinav Hello, my name is Anshul>
__init__ Метод із успадкуванням
Спадщина це здатність одного класу отримувати або успадковувати властивості від іншого класу. Давайте розглянемо приклад нижче, щоб побачити, як __init__ працює у спадкуванні.
Python3
arraylist і linkedlist
# 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'>)> |
>
>
Вихід:
A init called B init called>
Отже, спочатку викликається конструктор батьківського класу. Але в Python не обов’язково, щоб конструктор батьківського класу завжди викликався першим.
Порядок, у якому викликається метод __init__ для батьківського або дочірнього класу, можна змінити. Це можна просто зробити, викликавши конструктор батьківського класу після тіла конструктора дочірнього класу.
приклад:
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'>)> |
>
>
Вихід:
java int у рядку
B init called A init called>
Прочитайте : Спадкування в Python
Ми розглянули __init__ у Python, обговорили, як використовувати __init__, а також побачили кілька прикладів використання методу __init__ у Python.
Конструктор є ключовим поняттям в ООП, а метод __init__ дуже схожий на конструктори.
Сподіваюся, ця стаття допомогла вам у вивченні методу __init__, і ви зможете використовувати його у своїх проектах.
Пов'язана стаття
- Чи є __init__() приватним методом у Python?
- Яка різниця між __init__ і __call__?
- __нове__ в Python