2016-09-26 141 views
0

我有一个程序,如:全局名称 '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"

进出口新的蟒蛇,需要一些帮助。

+0

您的代码是无效的蟒蛇,所以它是很难衡量你的意图是在这里。 –

回答

0

q这里没有被声明为全局变量 - 它被声明为类ABC的类变量。

如果你想q是全球性的,你应该在开始声明这个类之前定义它。

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 
+0

哦,谢谢雷蒙德,我想我明白了。但为什么我会选择另一个呢? – sandybeach

相关问题