Sobes.tech
Junior — Middle
111

Əvvəl nə baş verir: obyekt yaradılarkən konstruktorun icrası və ya init metodunun çağırılması?

AI-dan cavab

sobes.tech Süni İntellekt

Python-da obyekt yaradarkən əvvəlcə __new__ metodu çağrılır, bu metod sinifin nümunəsini yaratmaqla məsuliyyət daşıyır, sonra isə yaradılmış obyektin başlanğıcını __init__ metodu ilə verir.

Python-da init adlı ayrıca standart metod mövcud deyil, ehtimal ki, __init__ nəzərdə tutulur.

Qısaca, ardıcıllıq aşağıdakı kimidir:

  1. __new__ — obyektin yaradılması
  2. __init__ — obyektin başlanğıcı

Nümunə:

class MyClass:
    def __new__(cls, *args, **kwargs):
        print('Obyekt yaradılır')
        return super().__new__(cls)

    def __init__(self):
        print('Obyekt başlanır')

obj = MyClass()

Çıxış:

Obyekt yaradılır
Obyekt başlanır