Python:从内部类对象中取出类
我有如下设置,Python:从内部类对象中取出类,python,inner-classes,outer-classes,Python,Inner Classes,Outer Classes,我有如下设置,B是一个内部类,a是一个外部类: class A: # some A stuff class B: # Some B stuff 如果我有一个B实例: b = B() 我怎样才能得到classA 换句话说,我想要像type(b)这样的东西,它通常会给出类b,但取而代之的是b的外部类A 编辑 我找到了\uuuuuuuuuuuuuuuuuu,如果您使用,请键入(b)__qualname__您将获得字符串“A.B”。虽然很接近,但我不认为从字符串中可以得到外部类本身。
B
是一个内部类,a
是一个外部类:
class A:
# some A stuff
class B:
# Some B stuff
如果我有一个B
实例:
b = B()
我怎样才能得到classA
换句话说,我想要像type(b)
这样的东西,它通常会给出类b
,但取而代之的是b
的外部类A
编辑
我找到了
\uuuuuuuuuuuuuuuuuu
,如果您使用,请键入(b)__qualname__
您将获得字符串“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):
...
这回答了你的问题吗?否。链接的问题是您在内部类中的什么位置,并且希望访问外部类方法。在我的情况下,您不在内部类中,但是您有一个内部类对象,并且希望访问其外部类的类。