春满大地,富贵花开。微雨众卉新,一雷惊蛰始。敬请关注微信公众号:AiryData。

Python3.6内置函数(34)——isinstance()

PYTHON Airy 12177℃ 0评论

英文文档

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.

isinstance()

isinstance(object, classinfo) 判断对象是否是类或者类型元组中任意类元素的实例
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。
5、如果classinfo类型对象,不是一个类型对象或者由多个类型对象组成的元组,则会报错(TypeError)。

>>> isinstance(a,(B,C))
False
>>> isinstance(a,(A,B,C))
True

>>> isinstance(a,[A,B,C])
Traceback (most recent call last):
File “<pyshell#113>”, line 1, in <module>
isinstance(a,[A,B,C])
TypeError: isinstance() arg 2 must be a type or tuple of types

小结

希望通过上面的操作能帮助大家。如果你有什么好的意见,建议,或者有不同的看法,我都希望你留言和我们进行交流、讨论。

欢迎关注微信公众号,谢谢大家支持:AiryData

转载请注明:数据之美 » Python3.6内置函数(34)——isinstance()

喜欢 (3)or分享 (0)
发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
(2)个小伙伴在吐槽
  1. 新年虽已过,好运不打折!
    营销软件2018-03-05 15:59 回复
  2. 找了好久才找到这里,来了就不想走!
    三五创业网2018-03-10 20:08 回复