1
class A(object):
    class B(object): pass
    class C(A.B): pass

results in

NameError: name 'A' is not defined

How do I inherit from B in C, if they are adjacent , both nested in A (inner classes)?

4

1 回答 1

4

A在类主体完成执行之前,您不能使用。

可以参考“本地”名称;类体作为函数执行,该函数的本地命名空间用于提供类属性;在类体内,B是一个本地名称:

class A(object):
    class B(object): pass
    class C(B): pass
于 2013-07-30T14:02:00.760 回答