Nested class is not defined in itself
以下代码成功打印
1 2 3 4 5 6 7 8 9 10 11 12 | class B(object): def __init__(self): super(B, self).__init__() print 'OK' class A(object): def __init__(self): self.B() B = B A() |
但与上述方法相同的是,以下方法会使
1 2 3 4 5 6 7 8 9 | class A(object): def __init__(self): self.B() class B(object): def __init__(self): super(B, self).__init__() print 'OK' A() |
号
为什么?
1 2 3 4 5 6 7 8 9 10 | class A(object): def __init__(self): self.B() class B(object): def __init__(self): super(A.B, self).__init__() print 'OK' A() |
请参见有关python作用域和名称空间的文档。