0

在 python 中,我试图通过一个对象 wo(用户定义)进行集成,而 wo.obj 是另一个用户定义的对象,我如何判断它是一个类的实例而不是普通数据类型?

type(wo.obj)
<class '__main__.test'>

type(wo.obj) is types.InstanceType
False

type(wo.obj) is types.ClassType
False
4

1 回答 1

3

要检查实例是否在特定类中,您可以使用 isinstance:

mc = MyClass()
isinstance(mc, MyClass) # True

.

注意:对于子类它是 True ,还有一些其他的怪癖,看到这个对类似问题的回答。

如果您只是检查type,您将看到<type 'instance'>无论它是哪个“用户定义”类的实例,结果都是如此。

type(notmc).__name__ == 'instance' #True

我怀疑这应该带有某种形式的健康警告,因为检查该类是否为实例类型似乎不是一项非常密集的检查。

于 2012-09-07T14:48:54.243 回答