Junior — Middle
განმარტეთ განსხვავებები self და cls შორის კლასის მეთოდების კონტექსტში
sobes.tech AI
პასუხი AI-სგან
პითონში 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() # კლასის მეთოდის გამოძახება