logo

__init__ у Python

метод __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