Что такое инициализатор __init__ в Python?

Ответ

Инициализатор __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 будет искать его в родительских классах по цепочке наследования.