Sobes.tech
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ő:

  1. __new__ — az objektum létrehozása
  2. __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