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'>

Затова използвайте статичен метод, когато функцията не зависи от състоянието на класа или неговите екземпляри, а метод на класа — когато трябва да работите с самия клас.