Junior — Middle
76
Чем отличается использование статического метода от метода класса в Python?
Ответ от нейросети
sobes.tech 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'>
Таким образом, используйте статический метод, когда функция не зависит от состояния класса или его экземпляров, а метод класса — когда нужно работать с самим классом.