Junior — Middle
Python-ში @staticmethod დეკორატორის მიზანია რა და როგორ განსხვავდება ჩვეულებრივი კლასის მეთოდებისგან?
sobes.tech AI
პასუხი AI-სგან
Python-да @staticmethod декораторы, класс ішінде, класс мысалына тәуелсіз және автоматты түрде self параметрін қабылдамайтын әдіс анықтау үшін пайдаланылады.
Қалыпты әдістерден айырмашылығы:
- Қалыпты әдістер бірінші параметр ретінде
selfқабылдайды — бұл ағымдағы класс мысалына сілтеме. - Статикалық әдістер
selfнемесеcls(кластың сілтемесі) қабылдамайды.
Бұл статикалық әдіс — класспен логикалық түрде байланысты, бірақ оның күйін пайдаланбайтын функция.
Мысал:
class MyClass:
@staticmethod
def static_method(x, y):
return x + y
def instance_method(self, x, y):
return x * y
print(MyClass.static_method(3, 4)) # 7
obj = MyClass()
print(obj.instance_method(3, 4)) # 12
Статикалық әдістер, класс контекстінде мағынасы бар, бірақ оның деректеріне қол жеткізуді талап етпейтін көмекші функциялар үшін пайдалы.