Похоже, что вы хотите инициализировать значение переменной статического класса, используя статическую функцию из того же класса, в котором она определена.Вы можете сделать это, используя следующий синтаксис, взятый из этого ответа , но с добавленным параметром:
class X:
@staticmethod
def do_something(par):
return par
static_var = do_something.__func__(5)
print(X.static_var)
Вывод:
5
Попробуйте!
Ссылка на статический метод класса X
непосредственно внутри определения X
завершается ошибкой, поскольку X
еще не существует.Однако, поскольку вы определили @staticmethod do_something
, вы можете вызвать его атрибут __func__
с параметром и присвоить результат static_var
.
Сказав это, вы получите дополнительную информацию о базовой цели проектирования.Попытка реализовать может выявить лучший подход.