Sobes.tech
Junior — Middle

Klass metodlar kontekstida self va cls o'rtasidagi farqlarni tushuntiring

sobes.tech AI

AIdan javob

Python'da self va cls metodlarning birinchi parametri uchun konventsiyalar bo'lib, ular turli maqsadlar uchun ishlatiladi:

  • self - bu aniq bir sinf nusxasiga ishora qiladi. Oddiy nusxa metodlarida bu ob'ektning atributlari va metodlariga kirish uchun ishlatiladi.
  • cls - bu o'zidan emas, sinfga ishora qiladi. Bu @classmethod dekoratori bilan belgilangan sinf metodlarida ishlatiladi va sinf bilan umumiy ishlash, yangi nusxalar yaratish yoki sinf xususiyatlarini o'zgartirish uchun mo'ljallangan.

Misol:

class MyClass:
    class_var = 0

    def __init__(self, value):
        self.instance_var = value

    def instance_method(self):
        print(f'Nusxa o'zgaruvchisi: {self.instance_var}')

    @classmethod
    def class_method(cls):
        print(f'Sinf o'zgaruvchisi: {cls.class_var}')

obj = MyClass(10)
obj.instance_method()  # nusxa metodini chaqirish
MyClass.class_method()  # sinf metodini chaqirish