我有一个类似的程序:
class ABC:
q = {}
def update:
self.state = (xx,xx)
global q
if self.state in q:
// do something
我收到错误:
“NameError:未定义全局名称'q'”
我是python的新手,需要一些帮助。
答案 0 :(得分:2)
您可以在课堂外移动 q :
q = {}
class ABC:
def update:
self.state = (xx,xx)
global q
if self.state in q:
# do something
pass
或者您可以将 q 作为类变量引用:
class ABC:
q = {}
def update:
self.state = (xx,xx)
if self.state in ABC.q:
# do something
pass
答案 1 :(得分:0)
q
在这里没有被声明为全局变量 - 它被声明为类ABC
的类变量。
如果您希望q
是全局的,则应在开始声明该类之前定义它。