staticmethod
Функция staticmethod() используется для преобразования метода класса в статический метод. Статические методы могут быть вызваны без создания экземпляра класса и не требуют передачи ссылки на объект или класс.
Синтаксис
staticmethod(function)
Аргументы
- function:
- Что означает: Функция, которую нужно преобразовать в статический метод.
- Возможные значения: Любая вызываемая функция.
Возвращаемое значение
Возвращает объект staticmethod, который можно присвоить как атрибут класса.
Примеры использования
class MyClass:
@staticmethod
def greet():
return "Hello, world!"
# Вызов без создания экземпляра
print(MyClass.greet()) # Вывод: "Hello, world!"
# Эквивалентно явному использованию staticmethod
class MyClass2:
def greet():
return "Hi!"
greet = staticmethod(greet)
Эквивалентный код
class staticmethod:
def __init__(self, function):
self.function = function
def __get__(self, instance, owner):
return self.function
Частые ошибки
Попытка использовать self или cls в статическом методе:
class MyClass: @staticmethod def example(): print(self) # Ошибка: NameError
Как исправить: Уберите ссылки на объект или класс.
Часто задаваемые вопросы
- Когда использовать staticmethod вместо обычных методов? Когда метод не использует ни экземпляр, ни класс, но логически принадлежит классу.