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

  1. Статический метод Python
  2. Создание и использование статического метода Python

В этой статье показано, как создавать и использовать статические методы в Python.

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

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

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

Во-первых, давайте создадим метод экземпляра, чтобы мы могли отличить его от статического метода. Допустим, у нас есть класс Coffee с методом is_hot, который принимает целое число в качестве параметра. Возвращает True, если заданное целое число больше 50, и False, если оно меньше 50.

class Coffee:
    def is_hot(self, temperature):
        return temperature > 50


coffee = Coffee()
print(coffee.is_hot(100))

Выход:

True

В приведенном выше примере был создан экземпляр coffee, который является экземпляром класса Coffee, чтобы иметь возможность вызывать метод is_hot.

Теперь давайте превратим is_hot в статический метод с помощью декоратора @staticmethod. Это встроенный декоратор, который используется для определения метода как статического.

class Coffee:
    @staticmethod
    def is_hot(temperature):
        return temperature > 50


print(Coffee.is_hot(100))

Выход:

True

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

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

class Coffee:
    def is_hot(temperature):
        return temperature > 50


Coffee.is_hot = staticmethod(Coffee.is_hot)
print(Coffee.is_hot(100))

Выход:

True

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

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

Сопутствующая статья - Python Class

  • Статические переменные класса в Python
  • Метаклассы в Python
  • Частные методы в Python