python中的isinstance函数

来源:互联网 发布:微电子行业知乎 编辑:程序博客网 时间:2024/04/19 01:32
我们经常需要在代码中确定某个实例是什么类型的。通过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))


另外,如果objectclassinfo所代表的类型或其元组中的类型的子类,同样返回TRUE。

有关instance函数的官方文档,请移步https://docs.python.org/2/library/functions.html#isinstance

0 0
原创粉丝点击