我有一个如下的设置,其中B
是内部类,A
是外部类:
class A:
# some A stuff
class B:
# Some B stuff
如果我有一个B
实例:
b = B()
如何获得A
类?
换句话说,我想要类似type(b)
的东西,它通常给出类B
,但却得到b
的外部类A
。
编辑
我找到了CCD_ 9,如果用它做CCD_;A.B";。虽然很接近,但我不认为从字符串中可以得到外部类本身。
没有引用"父";类(因为它们只是分配给类对象的名称空间(,除非您手动执行类似的操作
from enum import Enum
class A:
class B(Enum):
X = 1
A.B.parent = A
当然,您可以编写一个类装饰器,它遍历它所装饰的类的所有成员,如果它们是类,则用类似的属性对它们进行注释,从而将您带到
from enum to Enum
@annotate_subclasses # Implementation elided :)
class A:
class B(Enum):
...