Junior — Middle
109
Mi történik először: az konstruktor végrehajtása az objektum létrehozásakor vagy az init metódus hívása?
Válasz az MI-től
sobes.tech MI
Pythonban, amikor egy objektumot hozunk létre, először a __new__ metódus hívódik meg, amely felelős az osztály példányának létrehozásáért, majd a __init__ konstruktor hívódik, amely inicializálja a létrehozott objektumot.
A init nevű különálló standard metódus Pythonban nem létezik, valószínűleg a __init__-re gondol.
Röviden, a sorrend a következő:
__new__— az objektum létrehozása__init__— az objektum inicializálása
Példa:
class MyClass:
def __new__(cls, *args, **kwargs):
print('Objektum létrehozása')
return super().__new__(cls)
def __init__(self):
print('Objektum inicializálása')
obj = MyClass()
Kimenet:
Objektum létrehozása
Objektum inicializálása