Junior — Middle
Ներկայացրեք տարբերությունները self և cls-ի միջև դասի մեթոդների կոնտեքստում
sobes.tech AI
Պատասխան AI-ից
Python-ում self և cls-ը կոնվենցիաներ են մեթոդների առաջին պարամետրի համար, բայց ունեն տարբեր նպատակներ.
selfհղում է կոնկրետ օրինակին։ Օգտագործվում է սովորական օրինակային մեթոդներում՝ հասնելու այդ օբյեկտի հատկություններին և մեթոդներին:clsհղում է հենց դասին, ոչ թե նրա օրինակին։ Օգտագործվում է դասային մեթոդներում (@classmethodդեկորատորով նշված), որպեսզի աշխատի ամբողջ դասի հետ՝ օրինակ, նոր օրինակներ ստեղծելու կամ դասի հատկությունները փոխելու համար:
Օրինակ՝
class MyClass:
class_var = 0
def __init__(self, value):
self.instance_var = value
def instance_method(self):
print(f'Օբյեկտի փոփոխականը: {self.instance_var}')
@classmethod
def class_method(cls):
print(f'Դասի փոփոխականը: {cls.class_var}')
obj = MyClass(10)
obj.instance_method() # կանչում է օբյեկտի մեթոդը
MyClass.class_method() # կանչում է դասի մեթոդը