客趣旅游网
我们经常需要在代码中确定某个实例是什么类型的。通过type函数可以返回具体的类型名称。另有一些场景下,只需要知道实例是否属于某一些类型之一。例如要遍历一个对象,要先判断该实例是否为元组、列表或字典等可迭代类型之一。通过isinstance函数可以达到此目的。
isinstance(object,classinfo)
这个函数的功能简单的说就是判断object实例是否是classinfo类型的,如果是则返回TRUE,否则返回FALSE。classinfo参数有三种情况
1.类型,可以是基本的内置数据类型或自定义的类型,例如:
isinstance(object,str) isinstance(object,classA)
2.新式类型(new-style class),即type object,相关介绍参见:http://wiki.woodpecker.org.cn/moin/PyTypesAndObjects
调用方式同上。
3.元组,根据元组的元素类型,可以这样混搭
1)元素是class或type object的元组,例如
isinstance(obj,(list,tuple))
2)元素本身是元组,例如
isinstance(obj,((classA,classB),(classC,classD),(classE,classF)))
3)元素本身是元组和class或type object的组合;
isinstance(obj,((classA,classB),(classC,classD),(classE,classF),str))
另外,如果object是classinfo所代表的类型或其元组中的类型的子类,同样返回TRUE。