Sobes.tech
Junior — Middle
63

В каком порядке происходит вызов методов __new__ и __init__ при создании объекта класса в Python?

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

sobes.tech AI

При создании объекта класса в Python сначала вызывается метод __new__, который отвечает за создание нового экземпляра класса. После успешного создания объекта вызывается метод __init__, который инициализирует созданный объект.

Порядок вызова:

  1. __new__(cls, ...) — создаёт и возвращает новый объект.
  2. __init__(self, ...) — инициализирует объект, возвращает None.

Пример:

class MyClass:
    def __new__(cls, *args, **kwargs):
        print("__new__ called")
        instance = super().__new__(cls)
        return instance

    def __init__(self, value):
        print("__init__ called")
        self.value = value

obj = MyClass(10)

Вывод:

__new__ called
__init__ called