我试图在内部类中使用外部类中的变量分配变量。
class OUTER(QtGui.QWidget):
def __init__(self):
super (OUTER, self).__init__()
self.initUI()
def number (self):
self.out = 50
...
class INNER(QtGui.QLCDNumber)
in = OUTER.out #error: NameError: name 'OUTER' is not defined
@pyqtSlot()
def some_func(self):
self.display(self.in)
我收到错误
NameError: name 'OUTER' is not defined.
有什么方法可以解决这个问题吗?
答案 0 :(得分:2)
你不能这样做。
直到整个外部类声明完成后才定义OUTER。类主体是可执行代码;它们在定义时执行。定义正文时,会将其分配给名称,但在此之前名称不存在。
这就是为什么嵌套类在Python中很少是个好主意的原因之一。内部类没有获得对外部类的任何特殊访问权限,因此根本没有任何理由将它们嵌套。
另外,我刚刚注意到您正在尝试通过类引用实例变量。这无法奏效。 OUTER.out
不存在,只有OUTER
的实例具有out
属性。 (OUTER.out
的价值甚至是多少?)