Статический метод Python
В этом быстром сообщении мы узнаем, как создавать и использовать статический метод Python. Мы также рассмотрим, какие преимущества и недостатки предлагают статические методы по сравнению с методами экземпляра. Давайте начнем.
Что такое статический метод?
Статические методы в Python крайне похожи на методы на уровне класса, отличие заключается в том, что статический метод привязан к классу, а не к объектам этого класса. Это означает, что статический метод можно вызывать без объекта этого класса. Это также означает, что статические методы не могут изменять состояние объекта, так как они не привязаны к нему. Давайте посмотрим, как мы можем создавать статические методы в Python.
Создание статических методов Python
Статические методы Python можно создавать двумя способами. Давайте рассмотрим каждый из способов здесь:
Используя staticmethod()
Давайте сразу перейдем к фрагменту примера кода о том, как использовать подход staticmethod()
:
class Calculator:
def addNumbers(x, y):
return x + y
# создаем статический метод addNumbers
Calculator.addNumbers = staticmethod(Calculator.addNumbers)
print('Product:', Calculator.addNumbers(15, 110))
Обратите внимание, что мы вызвали созданный нами метод addNumbers без объекта. Когда мы запускаем эту программу, вот какой вывод мы получим: Здесь не было никаких сюрпризов. Этот подход контролируется, так как в каждом месте возможно создать статический метод из метода класса. Давайте рассмотрим другой подход с тем же примером здесь.
Используя @staticmethod
Это более тонкий способ создания статического метода, так как нам не нужно полагаться на определение оператора метода как метода класса и делать его статическим в каждом месте, где он делается статическим. Давайте используем эту аннотацию в фрагменте кода:
class Calculator:
# создаем статический метод addNumbers
@staticmethod
def addNumbers(x, y):
return x + y
print('Product:', Calculator.addNumbers(15, 110))
Когда мы запустим эту программу, мы получим следующий вывод: Фактически, это гораздо лучший способ создания статического метода, так как намерение сделать метод статическим становится понятным сразу после его создания и отметки аннотацией
@staticmethod
.
Преимущества статического метода Python
Статические методы имеют очень ясное применение. Когда нам нужна функциональность не относительно объекта, а относительно всего класса, мы делаем метод статическим. Это довольно выгодно, когда нам нужно создать утилитарные методы, так как они обычно не привязаны к жизненному циклу объекта. Наконец, обратите внимание, что в статическом методе нам не нужно передавать self
как первый аргумент. Ссылка на API: Документация Python
Source:
https://www.digitalocean.com/community/tutorials/python-static-method