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'>
Затова използвайте статичен метод, когато функцията не зависи от състоянието на класа или неговите екземпляри, а метод на класа — когато трябва да работите с самия клас.