class Gui():
var = None
def refreshStats(args):
print(str(var))
clas = Gui()
clas.refreshStats()
微量
File "sample.py", line 5, in refreshStats
print(str(var))
NameError: name 'var' is not defined.
为什么?
答案 0 :(得分:0)
var
未在refreshStats()
函数的范围内定义,因为它是一个类变量。
因此,如果您想要访问它,可以执行Gui.var
。
答案 1 :(得分:0)
如果您希望变量在类函数范围内可见,请将self传递给每个类函数,并将类变量用作self.var
,如下所示:
class Gui():
var = None
def refreshStats(self, args):
print(str(self.var))
clas = Gui()
clas.refreshStats()
如果要将此作为实例变量(仅适用于此类的实例)而不是类变量(在类的所有实例中共享),则应在__init__
函数中声明它:
class Gui():
def __init__(self):
self.var = None
def refreshStats(self, args):
print(str(self.var))
clas = Gui()
clas.refreshStats()
答案 2 :(得分:0)
make class in classmethod或instance方法然后你可以访问所有类实例属性或varable里面的方法,如果方法是实例方法,或者如果类方法然后你可以在方法内访问类属性
class A():
a = 0
def aa(self):
"""instance method"""
print self.a
@classmethod
def bb(cls):
"""class method"""
print cls.a