Статические методы в Python: staticmethod() и @staticmethod

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

Что такое функция staticmethod() в Python?

Python staticmethod() — это встроенная функция, которая возвращает статический метод для заданной функции. Этот метод похож на метод уровня класса Python, но разница в том, что этот метод привязан только к классу, а не к объектам класса. Следовательно, мы не можем изменить какой-либо объект класса с помощью функции staticmethod(), поскольку объекты не привязаны к ней.

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

Давайте посмотрим, как мы можем создавать статические методы в Python, используя staticmethod() и @staticmethod.

Синтаксис

Аргументы

Аргумент функции — это function, присутствующая внутри класса, и ее необходимо преобразовать.

Однако приведенный выше метод является не-Pythonic способом создания статического метода; более новый способ:

Здесь мы использовали @staticmethod.

Статический метод возвращает статический метод данной функции.

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

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

Использование staticmethod()

Давайте посмотрим, как использовать подход staticmethod().

Выход:

Следует отметить, что мы вызвали созданный нами метод mul без объекта.

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

См. другой пример.

Выход:

В этом примере мы сначала создали класс с именем «Sum», а затем создали функцию внутри класса с именем «sumoftwo».

Мы создали статический метод вне класса, вызвав эту функцию, а затем напечатали его.

Использование @staticmethod

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

См. следующий пример.

Выход:

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

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

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

Наконец, обратите внимание, что нам не нужно, чтобы self передавалось в качестве первого аргумента статического метода.

Оцените статью

Автор статей и разработчик, делюсь знаниями.

Программирование на Python