Sobes.tech
Junior — Middle

Ի՞նչ կանչեր մետակլասի մեթոդները նոր դասի սահմանման ժամանակ:

sobes.tech AI

Պատասխան AI-ից

Երբ նոր դաս է սահմանվում Python-ում, մետակլասը վերահսկում է դասի ստեղծման գործընթացը: Մետակլասի մեթոդների հիմնական կանչերը տեղի են ունենում հետևյալ կարգով՝

  1. __new__ — կանչվում է նոր դասի օբյեկտի (այսինքն, ինքն դասի) ստեղծման համար: Այստեղ դուք կարող եք փոփոխել կամ պատրաստել դասի հատկությունները նախքան դրա ստեղծումը:

  2. __init__ — սկսում է ստեղծված դասի օբյեկտը, սովորաբար օգտագործվում է լրացուցիչ կազմաձևման համար:

  3. __call__ — կանչվում է նոր դասի օրինակները ստեղծելիս, բայց դա արդեն տեղի է ունենում դասի սահմանումից հետո:

Պարզեցված մետակլասի օրինակ՝

class Meta(type):
    def __new__(cls, name, bases, dct):
        print(f"Ստեղծվում է դաս {name}")
        return super().__new__(cls, name, bases, dct)

    def __init__(cls, name, bases, dct):
        print(f"Սկսվում է դաս {name}")
        super().__init__(name, bases, dct)

class MyClass(metaclass=Meta):
    pass

Երբ գործարկվի, կցուցադրվի՝

Ստեղծվում է դաս MyClass
Սկսվում է դաս MyClass

Այսպիսով, նոր դաս սահմանելիս, մետակլասի __new__ և __init__ մեթոդները կանչվում են: