我有一个名为'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'?
无法打印其别名.许多名称可以引用同一个类.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)
哪个班级名称"正确"?