__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