Junior — Middle
Ի՞նչ կանչեր մետակլասի մեթոդները նոր դասի սահմանման ժամանակ:
sobes.tech AI
Պատասխան AI-ից
Երբ նոր դաս է սահմանվում Python-ում, մետակլասը վերահսկում է դասի ստեղծման գործընթացը: Մետակլասի մեթոդների հիմնական կանչերը տեղի են ունենում հետևյալ կարգով՝
-
__new__— կանչվում է նոր դասի օբյեկտի (այսինքն, ինքն դասի) ստեղծման համար: Այստեղ դուք կարող եք փոփոխել կամ պատրաստել դասի հատկությունները նախքան դրա ստեղծումը: -
__init__— սկսում է ստեղծված դասի օբյեկտը, սովորաբար օգտագործվում է լրացուցիչ կազմաձևման համար: -
__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__ մեթոդները կանչվում են: