Ответ
Инициализатор __init__
— это специальный метод в Python, который автоматически вызывается после создания экземпляра класса. Его основная задача — установить начальное состояние объекта, то есть присвоить значения его атрибутам.
Важно отличать его от __new__
, который отвечает за создание экземпляра, в то время как __init__
— за его инициализацию.
Пример:
class User:
# Метод-инициализатор
def __init__(self, username: str, email: str):
# Установка начальных атрибутов экземпляра
self.username = username
self.email = email
self.is_active = True # Можно задавать значения по умолчанию
# При создании экземпляра `User(...)` автоматически вызывается `__init__`
user1 = User("alice", "alice@example.com")
print(f"Username: {user1.username}, Active: {user1.is_active}")
# Вывод: Username: alice, Active: True
Ключевые особенности:
self
: Первым аргументом всегда являетсяself
, который ссылается на сам создаваемый экземпляр.- Отсутствие возвращаемого значения:
__init__
не должен возвращать никакого значения. Его задача — модифицироватьself
. Попытка вернуть что-либо, кромеNone
, вызоветTypeError
. - Необязательность: Если
__init__
не определен в классе, Python будет искать его в родительских классах по цепочке наследования.