Python class NameError. Var is not defined
本问题已经有最佳答案,请猛点这里访问。
1 2 3 4 5 6 | class Gui(): var = None def refreshStats(args): print(str(var)) clas = Gui() clas.refreshStats() |
痕迹
1 2 3 | File"sample.py", line 5, in refreshStats print(str(var)) NameError: name 'var' is not defined. |
为什么?
使方法在类内成为ClassMethod或Instance方法,然后可以访问所有类实例属性,或者如果方法是Instance方法,则可以访问方法内的varable;如果方法是Class方法,则可以访问方法内的Class属性。
1 2 3 4 5 6 7 8 9 10 11 | class A(): a = 0 def aa(self): """instance method""" print self.a @classmethod def bb(cls): """class method""" print cls.a |
如果希望变量在类函数范围内可见,请将self传递到每个类函数中,并将类变量用作
1 2 3 4 5 6 | class Gui(): var = None def refreshStats(self, args): print(str(self.var)) clas = Gui() clas.refreshStats() |
如果要将它用作实例变量(仅用于类的这个实例),而不是类变量(在类的所有实例中共享),则应在
1 2 3 4 5 6 7 | class Gui(): def __init__(self): self.var = None def refreshStats(self, args): print(str(self.var)) clas = Gui() clas.refreshStats() |
因此,如果您想访问它,可以执行