获取导入类的别名

时间:2014-12-20 11:55:38

标签: python alias

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

class MyClass:
    def __init__ (self):
        pass

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

from mymod import MyClass as Imp_MyClass
o = Imp_MyClass()

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

print o.__class__.__name__

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

2 个答案:

答案 0 :(得分:5)

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

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

a = b = c = MyClass()
d = a

哪个名字是“真正的”名字?所有abcd都引用了该对象,没有任何名称比其他名称更正确。

在您的代码中,您可以:

from mymod import MyClass as Imp_MyClass
AlsoMyClass = Imp_MyClass
AnotherOne = AlsoMyClass
o = AlsoMyClass()
o2 = AnotherOne()

哪个班级名称是“正确的”?

答案 1 :(得分:0)

我同意@ ned的评论,但出于您的目的,您可以通过继承Imp_MyClass轻松创建一个新类,它几乎与所有目的(几乎)完全相同。 :

from mymod import MyClass

class Imp_MyClass(MyClass):
    pass

o = Imp_MyClass()