【发布时间】:2010-10-06 11:12:12
【问题描述】:
我有一个脚本,我在其中做一些神奇的事情来动态加载模块,并实例化模块中的第一个类。但是我不能在 Python 3 中再使用types.ClassType。现在正确的方法是什么?
【问题讨论】:
标签: class types python-3.x
我有一个脚本,我在其中做一些神奇的事情来动态加载模块,并实例化模块中的第一个类。但是我不能在 Python 3 中再使用types.ClassType。现在正确的方法是什么?
【问题讨论】:
标签: class types python-3.x
我想通了。似乎类的类型是“类型”。这是一个如何在运行时区分类和其他对象的示例。
>>> class C: pass
...
>>> type(C)
<class 'type'>
>>> isinstance(C, type)
True
>>> isinstance('string', type)
False
【讨论】:
type(C) is type,它适用于简单的类,但不适用于 C 使用元类。正如您所写,isinstance(C, type) 在这种情况下仍会返回 True。
它被用于classic classes。在 Python 3 中,它们消失了。 我想你可以使用类似的东西:
issubclass(ClassName, object)
【讨论】: