python内置isinstance函数详细介绍

英文文档:

isinstance(object, classinfo)

return true if the object argument is an instance of the classinfo argument, or of a (direct, indirect or virtual) subclass thereof. if object is not an object of the given type, the function always returns false. if classinfo is a tuple of type objects (or recursively, other such tuples), return true if object is an instance of any of the types. if classinfo is not a type or tuple of types and such tuples, a typeerror exception is raised.

说明:

  1. 函数功能用于判断对象是否是类型对象的实例,object参数表示需要检查的对象,calssinfo参数表示类型对象。

  2. 如果object参数是classinfo类型对象(或者classinfo类对象的直接、间接、虚拟子类)的实例,返回true。

>>> isinstance(1,int)
true
>>> isinstance(1,str)
false
# 定义3各类:c继承b,b继承a
>>> class a:
pass
>>> class b(a):
pass
>>> class c(b):
pass
>>> a = a()
>>> b = b()
>>> c = c()
>>> isinstance(a,a) #直接实例
true
>>> isinstance(a,b)
false
>>> isinstance(b,a) #子类实例
true
>>> isinstance(c,a) #孙子类实例
true

  3. 如果object参数传入的是类型对象,则始终返回false。

>>> isinstance(str,str)
false
>>> isinstance(bool,int)
false

  4. 如果classinfo类型对象,是多个类型对象组成的元组,如果object对象是元组的任一类型对象中实例,则返回true,否则返回false。

>>> isinstance(a,(b,c))
false
>>> isinstance(a,(a,b,c))
true

  5. 如果classinfo类型对象,不是一个类型对象或者由多个类型对象组成的元组,则会报错(typeerror)。

>>> isinstance(a,[a,b,c])
traceback (most recent call last):
file “”, line 1, in
isinstance(a,[a,b,c])
typeerror: isinstance() arg 2 must be a type or tuple of types

以上就是python内置isinstance函数详细介绍的详细内容,更多请关注 第一php社区 其它相关文章!

Posted in 未分类

发表评论