Sobes.tech
Junior — Middle
106

Čo sa stane ako prvé: vykonanie konštruktora pri vytváraní objektu alebo volanie metódy init?

Odpoveď od AI

sobes.tech AI

V Pythone, pri vytváraní objektu sa najskôr volá metóda __new__, ktorá je zodpovedná za vytvorenie inštancie triedy, a potom sa volá konštruktor __init__, ktorý inicializuje vytvorený objekt.

Metóda init ako samostatná štandardná metóda v Pythone neexistuje, pravdepodobne sa myslí __init__.

Stručne povedané, poradie je:

  1. __new__ — vytvorenie objektu
  2. __init__ — inicializácia objektu

Príklad:

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

    def __init__(self):
        print('Inicializácia objektu')

obj = MyClass()

Výstup:

Vytváranie objektu
Inicializácia objektu