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