Статический метод Python

Статический метод 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