Sobes.tech
Junior — Middle

Мақсади декоратори @staticmethod дар Python чист ва чӣ гуна аз усулҳои одии синф фарқ мекунад?

sobes.tech AI

Ҷавоб аз AI

Декоратори @staticmethod дар Python барои муайян кардани метод дар дохили синф истифода мешавад, ки аз намунаи синф вобаста нест ва автоматӣ параметри 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

Методҳои статикӣ барои функсияҳои кӯмакӣ, ки дар контексти синф маъно доранд, аммо ба маълумоти он дастрасӣ талаб намекунанд, муфиданд.