Sobes.tech
Назад к вопросам
Middle+
5

__init__ создаёт объект?

Компании, где спрашивали
cleverbots

Ответ от нейросети

sobes.tech AI

Метод __init__ в Python не создаёт объект, он инициализирует уже созданный объект.

Когда вы вызываете класс, например obj = MyClass(), сначала вызывается метод __new__, который отвечает за создание нового экземпляра класса (объекта). После того, как объект создан, вызывается __init__, который инициализирует этот объект — задаёт начальные значения атрибутов и выполняет другую подготовку.

Пример:

class MyClass:
    def __new__(cls, *args, **kwargs):
        print("Создаём объект")
        return super().__new__(cls)

    def __init__(self, value):
        print("Инициализируем объект")
        self.value = value

obj = MyClass(10)

Вывод будет:

Создаём объект
Инициализируем объект

Таким образом, __init__ — это не конструктор в классическом понимании, а метод инициализации объекта после его создания.