如何从模块根目录获取类名,包括完整路径?针对 Python 3.3 及以上版本。
以下是 Python 代码示例:
class A:
class B:
class C:
def me(self):
print(self.__module__)
print(type(self).__name__)
print(repr(self))
x = A.B.C()
x.me()
这段代码在 Python 3.3 上输出了我:
__main__
C
<__main__.A.B.C object at 0x0000000002A47278>
因此,Python内部知道我的对象是__main__.A.B.C
,但是我如何以编程方式获取它?我可以解析repr(self)
,但对我来说这听起来像一个hack。
__bases__
属性和inspect
模块提供的方法解析顺序(mro
)也是有趣的信息,除了正式继承链“显示”之外。因为这决定了哪个方法(如果提供多个)将被选择,就像有效层次结构一样。 - Dilettant__qualname__
属性。 - Ashwini Chaudhary