Sobes.tech
Junior — Middle
69

Milyen sorrendben hívódnak meg a __new__ és __init__ metódusok Pythonban osztályobjektum létrehozásakor?

Válasz az MI-től

sobes.tech MI

При создании объекта класса в 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