Какой магический метод в Python используется для инициализации экземпляра класса?

Ответ

Для инициализации экземпляра класса в Python используется магический метод __init__. Он вызывается после создания объекта (но до его возврата) и отвечает за установку начального состояния объекта, присваивая значения его атрибутам.

Использование __init__ позволяет гарантировать, что каждый новый экземпляр класса будет корректно настроен с необходимыми начальными данными.

Пример:

class Person:
    def __init__(self, name: str, age: int):
        self.name = name
        self.age = age

# Создание экземпляра класса Person, __init__ вызывается автоматически
person = Person("Alice", 30)
print(person.name)  # Вывод: Alice
print(person.age)   # Вывод: 30

Важные аспекты __init__:

  • __init__ не создает сам объект; его создание происходит до вызова __init__ с помощью метода __new__.
  • Если __init__ не определен в классе, используется его пустая реализация по умолчанию.
  • Как и все методы экземпляра, __init__ должен принимать self в качестве первого аргумента, который ссылается на создаваемый экземпляр.