说我有类Test
定义为这样:访问静态类变量
class Test
test_var = 2
def test_func():
print(test_var)
我可以找出test_var
是好的,像这样:
>>> Test.test_var
2
...但调用Test.test_func()
不起作用。
>>> Test.test_func()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<stdin>", line 4, in test
NameError: name 'test_var' is not defined
如果我改变Test.test_func()
像这样(注意,这是伪代码):
redef test_func():
print(Test.test_var)
它工作正常:
>>> Test.test_func()
2
...这是有道理的。但我怎样才能使第一个例子工作,切记,我想test_func是一个实例方法?
请注意,上面发布的代码是示例代码,因此应该忽略拼写错误。
您应该发布一个工作示例,以便让拼写错误发挥作用。你有这个“redef”的东西......但是它会更有助于展示你实际做了什么。 – tdelaney
你的基本问题是'test_func'不是一个类方法或实例方法,所以它不知道类名称空间。 – tdelaney
@tdelaney我刚刚重写了这个类,改变了这个函数。不是我怎么说它是伪代码。 – Quelklef