Что такое статический метод в Python?
Статические методы в Python привязываются к классу, а не к объектам этого класса, они похожи на методы.
Статический метод может быть вызван без объекта для этого класса. Статические метод также не могут изменить состояние объекта.
Давайте рассмотрим, как создавать статические методы в Python.
Создание статических методов
Статические методы Python можно создать двумя способами.
Давайте посмотрим каждый из способов:
Использование staticmethod()
Давайте сразу перейдем к фрагменту кода примера, чтобы узнать, как использовать подход staticmethod()
:
class Calculator:
def addNumbers(x, y):
return x + y
Calculator.addNumbers = staticmethod(Calculator.addNumbers)
print('Calculate:', Calculator.addNumbers(50, 100))
Результат: Calculate: 150
Использование декоратора @staticmethod
Декоратор @staticmethod
облегчает работу создания статического метода, потому что нам не нужно полагаться на определение оператора, который является методом класса и делает его статическим везде, где вы делаете его статическим.
Давайте используем эту конструкцию во фрагменте кода:
class Calculator:
@staticmethod
def addNumbers(x, y):
return x + y
print('Calculate:', Calculator.addNumbers(50, 100))
Результат: Calculate: 150
Преимущества статического метода
Статические методы имеют очень четкий вариант использования.
Когда нам нужна какая-то функциональность не по отношению к объекту, а для всего класса, мы делаем метод статическим. Это очень удобно, когда нам нужно создать методы использования, поскольку они обычно не привязаны к жизненному циклу объекта.