获取导入类的别名

Kri*_*ndu 6 python alias

我有一个名为'mymod'的模块,它定义了一个名为MyClass的类.

class MyClass:
    def __init__ (self):
        pass
Run Code Online (Sandbox Code Playgroud)

在主模块中,此类作为Imp_MyClass导入,并创建一个对象.

from mymod import MyClass as Imp_MyClass
o = Imp_MyClass()
Run Code Online (Sandbox Code Playgroud)

要从此对象打印类的名称,我们使用

print o.__class__.__name__
Run Code Online (Sandbox Code Playgroud)

打印'MyClass'.我该怎么做才能打印别名,即.'Imp_MyClass'?

Ned*_*der 6

无法打印其别名.许多名称可以引用同一个类.Python中的类只是与其他类似的值,它们可以任意分配给名称.您的导入声明只是一项任务.

这就像问,如何在这种情况下找到对象的名称:

a = b = c = MyClass()
d = a
Run Code Online (Sandbox Code Playgroud)

哪个名字是"真正的"名字?所有的a,b,c,和d参考的对象,没有名字比其他任何权利.

在您的代码中,您可以:

from mymod import MyClass as Imp_MyClass
AlsoMyClass = Imp_MyClass
AnotherOne = AlsoMyClass
o = AlsoMyClass()
o2 = AnotherOne()
Run Code Online (Sandbox Code Playgroud)

哪个班级名称"正确"?