Sobes.tech
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'> даъват мешавад

Аз ин рӯ, вақте функсия аз ҳолати синф ё нусхаҳои он вобаста нест, истифодаи методи статикро, ва вақте ки бояд бо худи синф кор кард, — методи класи истифода баред.