在 python 中,我试图通过一个对象 wo(用户定义)进行集成,而 wo.obj 是另一个用户定义的对象,我如何判断它是一个类的实例而不是普通数据类型?
type(wo.obj)
<class '__main__.test'>
type(wo.obj) is types.InstanceType
False
type(wo.obj) is types.ClassType
False
在 python 中,我试图通过一个对象 wo(用户定义)进行集成,而 wo.obj 是另一个用户定义的对象,我如何判断它是一个类的实例而不是普通数据类型?
type(wo.obj)
<class '__main__.test'>
type(wo.obj) is types.InstanceType
False
type(wo.obj) is types.ClassType
False
要检查实例是否在特定类中,您可以使用 isinstance:
mc = MyClass()
isinstance(mc, MyClass) # True
.
注意:对于子类它是 True ,还有一些其他的怪癖,看到这个对类似问题的回答。
如果您只是检查type
,您将看到<type 'instance'>
无论它是哪个“用户定义”类的实例,结果都是如此。
type(notmc).__name__ == 'instance' #True
我怀疑这应该带有某种形式的健康警告,因为检查该类是否为实例类型似乎不是一项非常密集的检查。