Ответ
Метод __init__ — это инициализатор экземпляра класса в Python. Он автоматически вызывается после создания нового объекта (после вызова метода __new__) и предназначен для установки начального состояния объекта.
Ключевые моменты:
- Не конструктор: Конструктором, создающим объект, является метод
__new__.__init__лишь инициализирует уже созданный объект. - Первый параметр
self: Ссылка на создаваемый экземпляр. - Может принимать любые аргументы для настройки объекта.
Пример:
class DatabaseConnection:
def __init__(self, host, port, user, password):
# Инициализация атрибутов экземпляра
self.host = host
self.port = port
self.user = user
self._password = password # "Защищенный" атрибут
self.is_connected = False
def connect(self):
# Используем атрибуты, установленные в __init__
print(f"Connecting to {self.user}@{self.host}:{self.port}")
# ... логика подключения
self.is_connected = True
# Создание и инициализация объекта
conn = DatabaseConnection("localhost", 5432, "admin", "secret")
print(conn.host) # localhost
print(conn.is_connected) # False
conn.connect()
print(conn.is_connected) # True
Почему это важно: __init__ — это стандартный и ожидаемый способ задания начальных, обязательных для работы объекта данных, что делает код понятным и предсказуемым.