Junior — Middle
Sinif metodlarında self və cls arasındakı fərqləri izah edin
sobes.tech Süni İntellekt
AI-dan cavab
Python-da self və cls, metodların ilk parametri üçün konvensiyalardır, lakin onlar müxtəlif məqsədlər üçün istifadə olunur:
selfmüəyyən bir sinif nümunəsinə istinad edir. Bu, adi nümunə metodlarında həmin obyektin atributlarına və metodlarına çıxış üçün istifadə olunur.clsisə özündən deyil, sinfə istinad edir. Bu,@classmethoddekoratoru ilə işarələnmiş sinif metodlarında istifadə olunur və siniflə ümumi işləmək, yeni nümunələr yaratmaq və ya sinif xüsusiyyətlərini dəyişdirmək üçün nəzərdə tutulub.
Nümunə:
class MyClass:
class_var = 0
def __init__(self, value):
self.instance_var = value
def instance_method(self):
print(f'Nümunə dəyişəni: {self.instance_var}')
@classmethod
def class_method(cls):
print(f'Sinif dəyişəni: {cls.class_var}')
obj = MyClass(10)
obj.instance_method() # nümunə metodunu çağırır
MyClass.class_method() # sinif metodunu çağırır