嵌套类变量python
我试图在内部类中分配一个变量,而在外部类中分配一个变量嵌套类变量python,python,nested-class,Python,Nested Class,我试图在内部类中分配一个变量,而在外部类中分配一个变量 class OUTER(QtGui.QWidget): def __init__(self): super (OUTER, self).__init__() self.initUI() def number (self): self.out = 50 ... class INNER(QtGui.QLCDNumber) in =
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.
有没有办法解决这个问题?你不能这样做
在完成整个外部类声明之前,不会定义外部类。类主体是可执行代码;它们在定义时执行。定义主体时,会将其分配给名称,但在此之前,名称不存在
这就是为什么在Python中嵌套类很少是个好主意的原因之一。内部类对外部类没有任何特殊的访问权限,因此根本没有理由嵌套它们
另外,我刚刚注意到您正试图通过类引用实例变量。那是行不通的
OUTER.out
不存在,只有OUTER
的实例具有out
属性。(如果OUTER.out
的值是多少?我正在尝试在我的内部类中分配一个变量,而在外部类中分配一个变量。。。。好啊请continue@BhargavRao错误在这一行:in=OUTER.out#错误:name错误:未定义名称“OUTER”
。谢谢。现在有意义了