Junior — Middle
Ի՞նչն է տարբերությունը Python-ում ստատիկ մեթոդի և դասի մեթոդի օգտագործման միջև։
sobes.tech AI
Պատասխան AI-ից
Սթատիկ մեթոդը Python-ում այն մեթոդն է, որը ավտոմատ կերպով չի ընդունում ոչ մի օրինակ դասից (self), ոչ էլ ինքնին դասը (cls) որպես առաջին արգումենտ։ Այն հայտարարվում է @staticmethod դեկորատորով և վարքագիծ է դրսևորում որպես սովորական ֆունկցիա, բայց տրամաբանորեն պատկանում է դասին։
Դասի մեթոդը հայտարարվում է @classmethod դեկորատորով և ընդունում է դասը (cls) որպես առաջին արգումենտ։ Սա թույլ է տալիս մեթոդին աշխատել հենց դասի հետ, օրինակ՝ ստեղծել նոր օրինակներ կամ փոխել դասի հատկությունները։
Օրինակ՝
class MyClass:
@staticmethod
def static_method():
print("Սա ստատիկ մեթոդ է")
@classmethod
def class_method(cls):
print(f"Սա դասի մեթոդ է, որը կանչվում է {cls} համար")
MyClass.static_method() # Տպել է՝ Սա ստատիկ մեթոդ է
MyClass.class_method() # Տպել է՝ Սա դասի մեթոդ է, որը կանչվում է <class '__main__.MyClass'> համար
Ահա թե ինչու, երբ ֆունկցիան կախված չէ դասի կամ նրա օրինակների վիճակից, օգտագործեք ստատիկ մեթոդ, իսկ երբ պետք է աշխատել հենց դասի հետ՝՝ դասի մեթոդ։