Sobes.tech
Junior — Middle

Co se stane jako první: provedení konstruktoru při vytváření objektu nebo volání metody init?

sobes.tech AI

Odpověď od AI

V Pythonu při vytváření objektu se nejprve volá metoda __new__, která je odpovědná za vytvoření instance třídy, a poté se volá konstruktor __init__, který inicializuje vytvořený objekt.

Metoda init jako samostatná standardní metoda v Pythonu neexistuje, pravděpodobně se myslí __init__.

Stručně řečeno, pořadí je:

  1. __new__ — vytvoření objektu
  2. __init__ — inicializace objektu

Příklad:

class MyClass:
    def __new__(cls, *args, **kwargs):
        print('Vytváření objektu')
        return super().__new__(cls)

    def __init__(self):
        print('Inicializace objektu')

obj = MyClass()

Výstup:

Vytváření objektu
Inicializace objektu