Поиск по сайту:

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


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

Что такое статический метод?

Статические методы в Python очень похожи на методы уровня класса Python, разница в том, что статический метод привязан к классу, а не к объектам этого класса. Это означает, что статический метод может быть вызван без объекта для этого класса. Это также означает, что статические методы не могут изменять состояние объекта, поскольку они не привязаны к нему. Давайте посмотрим, как мы можем создавать статические методы в Python.

Создание статических методов Python

Статические методы Python можно создавать двумя способами. Давайте посмотрим каждый из способов здесь:

Использование статического метода()

Давайте сразу перейдем к примеру фрагмента кода о том, как использовать метод staticmethod():

class Calculator:

    def addNumbers(x, y):
        return x + y

# create addNumbers static method
Calculator.addNumbers = staticmethod(Calculator.addNumbers)

print('Product:', Calculator.addNumbers(15, 110))

Использование @статического метода

Это более тонкий способ создания статического метода, поскольку нам не нужно полагаться на определение инструкции метода, являющегося методом класса, и делать его статическим в каждом месте, где вы делаете его статическим. Давайте используем эту аннотацию во фрагменте кода:

class Calculator:

    # create addNumbers static method
    @staticmethod
    def addNumbers(x, y):
        return x + y

print('Product:', Calculator.addNumbers(15, 110))

Преимущества статического метода Python

Статические методы имеют очень четкий вариант использования. Когда нам нужна какая-то функциональность не по отношению к объекту, а по отношению к полному классу, мы делаем метод статическим. Это довольно удобно, когда нам нужно создавать служебные методы, поскольку они обычно не привязаны к жизненному циклу объекта. Наконец, обратите внимание, что в статическом методе нам не нужно, чтобы self передавался в качестве первого аргумента. Справочник по API: документация по Python