我正在尝试使用静态var和静态方法实现一个简单的类:
class X(object):
@staticmethod
def do_something(par):
# do something with parameter par
#...
return something
static_var = X.do_something(5) #<-- that's how I call the function
但是我遇到了错误NameError: name 'X' is not defined
。
如何调用此静态函数?
答案 0 :(得分:1)
您似乎想使用来自与要定义的同一类的静态函数初始化静态类变量的值。您可以使用以下answer语法,但要添加参数:
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
。
话虽如此,有关您要实现的基本设计目标的更多信息可能会揭示一种更好的方法。