Sobes.tech
Junior — Middle
75

Чем отличается использование статического метода от метода класса в Python?

Answer from AI

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

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