Sobes.tech
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 selfcls, metodların ilk parametri üçün konvensiyalardır, lakin onlar müxtəlif məqsədlər üçün istifadə olunur:

  • self müə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.
  • cls isə özündən deyil, sinfə istinad edir. Bu, @classmethod dekoratoru 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