Sobes.tech
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()  # класс методу чакыруу