staticmethod()
Функция-декоратор staticmethod() превращает обычную функцию,
объявленную внутри класса, в статический метод. У такого метода нет
неявных аргументов self или cls, а вызывать его можно как через
класс, так и через экземпляр.
Сигнатура
staticmethod(function)
Параметры:
function— функция, которую нужно сделать статической.
Возвращает: объект-дескриптор, представляющий статический метод.
Примеры
Использование как декоратора:
class MathTools:
@staticmethod
def square(x):
return x * x
print(MathTools.square(7))
print(MathTools().square(4))
49
16
Группировка вспомогательных функций внутри класса:
class Validator:
@staticmethod
def is_email(value):
return "@" in value and "." in value
@staticmethod
def is_phone(value):
return value.startswith("+") and len(value) >= 10
print(Validator.is_email("user@alashed.kz"))
print(Validator.is_phone("+77001234567"))
True
True
Прямой вызов через staticmethod() без декоратора:
def to_celsius(f):
return round((f - 32) * 5 / 9, 1)
class Temperature:
to_celsius = staticmethod(to_celsius)
print(Temperature.to_celsius(100))
37.8
Сравнение с classmethod и обычным методом:
class Demo:
def instance_method(self):
return "instance"
@classmethod
def class_method(cls):
return "class"
@staticmethod
def static_method():
return "static"
d = Demo()
print(d.instance_method())
print(Demo.class_method())
print(Demo.static_method())
instance
class
static
См. также
Примечание
Описание основано на официальной документации Python (docs.python.org), распространяемой под лицензией PSF License v2. © Python Software Foundation.