我正在尝试创建一个包含引用类的静态方法的字符串的字典类属性:
class Foo:
references = {
'string a' : Foo.function_a,
'string b' : Foo.function_b
}
@staticmethod
def function_a():
return 0
@staticmethod
def function_b():
return 1
在课堂上对Foo的调用尚未解决:
NameError: name 'Foo' is not defined
有没有优雅的方法来创建引用类的静态方法的类属性?
答案 0 :(得分:4)
静态方法不是问题,问题是您正在尝试引用尚未定义的方法和类。这有效:
RTRIM
class Foo:
@staticmethod
def function_a():
return 0
@staticmethod
def function_b():
return 1
references = {
'string a' : function_a,
'string b' : function_b
}
定义是它自己的命名空间,你可以将函数称为class
而不是function_a
,你需要在之后已定义。