Junior — Middle
Фарқи истифодаи усули статикӣ аз усули синф дар Python чист?
sobes.tech AI
Ҷавоб аз AI
Методи статик дар Python — ин методест, ки автоматӣ қабул намекунад на нусхаи синф (self), на худи синф (cls) ҳамчун аввалин аргумент. Он бо ёрии декоратори @staticmethod эълон мешавад ва ҳамчун функсияи оддӣ амал мекунад, аммо мантиқан ба синф тааллуқ дорад.
Методи класи бо ёрии декоратори @classmethod эълон мешавад ва класи (cls) ҳамчун аввалин аргумент мегирад. Ин имкон медиҳад, ки метод бо худи синф кор кунад, масалан, нусхаҳои нав эҷод кунад ё хосиятҳои синфро тағир диҳад.
Масалан:
class MyClass:
@staticmethod
def static_method():
print("Ин як методи статик аст")
@classmethod
def class_method(cls):
print(f"Ин як методи синф аст, ки барои {cls} даъват мешавад")
MyClass.static_method() # Натиҷа: Ин як методи статик аст
MyClass.class_method() # Натиҷа: Ин як методи синф аст, ки барои <class '__main__.MyClass'> даъват мешавад
Аз ин рӯ, вақте функсия аз ҳолати синф ё нусхаҳои он вобаста нест, истифодаи методи статикро, ва вақте ки бояд бо худи синф кор кард, — методи класи истифода баред.