如何使用 Python 获取子 class 的完整 class 名称

How to get the full class name of a sub-class with Python

我需要获取子类的全名。

示例:

class Foo:
    class Bar:
        pass


x = Foo.Bar()
print(x.__class__.__name__)

输出:
预期:Foo.Bar

使用type.

class Foo:
    class Bar:
        pass


x = Foo.Bar()
print(type(x))
<class '__main__.Foo.Bar'>

__main__由你决定。

您可以使用 __qualname__, this is the fully qualified name of the __class__

class Foo:
    class Bar:
        pass


x = Foo.Bar()
print(x.__class__.__qualname__)
#OUTPUT: Foo.Bar

最好的方法是在 type 上调用它,它已经在实例上调用了 __class__

class Foo:
    class Bar:
        pass


x = Foo.Bar()
print(type(x).__qualname__)
#OUTPUT: Foo.Bar