Метод __init__ має вирішальне значення в об’єктно-орієнтованому програмуванні на Python. Це спеціальний метод, який автоматично викликається, коли об’єкт створюється з класу. Цей метод дозволяє нам ініціалізувати атрибути об’єкта та виконувати будь-які необхідні завдання налаштування або ініціалізації.
A͢J – S͟o͟l͟o͟H͟e͟l͟p͟e͟r͟ фактично ви все одно можете створювати екземпляри, навіть якщо явно не визначите __init__(). Я думаю, що в цьому випадку python неявно використовує метод __init__() класу (безфункціонального) об’єкта. У Python метод __init__() відіграє роль конструктора під час створення екземпляра класу.
Як правило, для узгодженості найкраще ініціалізувати всі змінні екземпляра у функції __init__(). __init__() — це те, що визначає змінні екземпляра. Будь-який інший є змінною класу, доки екземпляр не змінить її у власному контексті, таким чином приймаючи нову змінну екземпляра.
Конструктори в Python — це спеціальний метод класу для створення та ініціалізації екземпляра об’єкта в цьому класі. На Python кожен клас має конструктор; не потрібно визначати явно. Метою конструктора є створення об’єкта та присвоєння значення членам об’єкта.
Починаючи з версії 3.3 і впровадження PEP 420, Python у багатьох випадках неявно створюватиме «пакети простору імен». Це означає що __init__.py тепер часто необов’язковий, але все одно корисно структурувати ваш код ініціалізації та визначити, як мають працювати такі оператори, як from mypackage import *.