12
我有一个脚本,我在这里做了一些神奇的东西来动态加载模块,并实例化在模块中找到的第一个类。但是我不能在Python 3中使用types.ClassType
。现在正确的方法是什么?Python 3中的types.ClassType发生了什么?
我有一个脚本,我在这里做了一些神奇的东西来动态加载模块,并实例化在模块中找到的第一个类。但是我不能在Python 3中使用types.ClassType
。现在正确的方法是什么?Python 3中的types.ClassType发生了什么?
我想通了。看起来类是“类型”类型的。这里是一个如何在运行时区分类和其他对象的例子。
>>> class C: pass
...
>>> type(C)
<class 'type'>
>>> isinstance(C, type)
True
>>> isinstance('string', type)
False
它被用于classic classes。在Python 3中,它们不见了。 我想你可以使用类似的东西:
issubclass(ClassName, object)
谢谢!我尝试过使用`type(C)is type`,它适用于简单的类,但不适用于C使用元类。就像你写的那样,`isinstance(C,type)`在这种情况下仍然返回`True`。 – goodmami 2016-05-03 23:12:37