我有一个程序,如:全局名称 'Q' 没有定义 - Python的
class ABC:
q = {}
def update:
self.state = (xx,xx)
global q
if self.state in q:
// do something
我收到错误:
"NameError: global name 'q' is not defined"
进出口新的蟒蛇,需要一些帮助。
我有一个程序,如:全局名称 'Q' 没有定义 - Python的
class ABC:
q = {}
def update:
self.state = (xx,xx)
global q
if self.state in q:
// do something
我收到错误:
"NameError: global name 'q' is not defined"
进出口新的蟒蛇,需要一些帮助。
q
这里没有被声明为全局变量 - 它被声明为类ABC
的类变量。
如果你想q
是全球性的,你应该在开始声明这个类之前定义它。
可以移动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
哦,谢谢雷蒙德,我想我明白了。但为什么我会选择另一个呢? – sandybeach
您的代码是无效的蟒蛇,所以它是很难衡量你的意图是在这里。 –