【十九】isinstance()函数 -- 检查类型(2)
【1】作用
-
这个函数有点类似type函数的定义
- type判断
函数类型是什么
- 而isinstance是
通过判断对象是否是已知的类型
- type判断
-
但是isinstance比type高级一些(功能上的差异)
-
具体差异:
- type()
- 不考虑继承关系(子类不是父类类型)
- isinstance()
- 考虑继承关系(子类是父类类型)
- type()
【2】语法
- 官方文档
def isinstance(x, A_tuple): # real signature unknown; restored from __doc__
"""
Return whether an object is an instance of a class or of a subclass thereof.
A tuple, as in ``isinstance(x, (A, B, ...))``, may be given as the target to
check against. This is equivalent to ``isinstance(x, A) or isinstance(x, B)
or ...`` etc.
"""
pass
isinstance(object, classinfo)
object :实例对象
classinfo :类型可以是 直接或间接类名、基本类型以及元组
-
说人话
tmp = 2 isinstance(tmp,int) # 结果返回 True isinstance(tmp,str) # 结果返回 False tmp2 = {"a":19} #定义一个dict类型的变量 isinstance(tmp2,dict) # 结果返True
- 通过以上实例,我们可以看到isinstance()基本用法为:
isinstance(object,classinfo)
其中参数:
- object : 实例对象。
- classinfo : 可以是直接或者间接类名、基本类型或者由它们组成的元组。
返回值:
如果对象(object)的类型与参数(classinfo)的类型相同则返回 True,否则返回 False。
【3】函数版用法
- 基础版
a = 10086
isinstance (a,int) # true
isinstance (a,str) # false
isinstance (a,(str,int,list))
# 只要满足元组类型中的其中一个即可,答案是满足,所以为true
- 进阶版
s = () # 定义一个元组类型
isinstance(s,tuple) # true
isinstance(s,list) # false
s1 = [] # 定义一个列表类型
isinstance(s1,list) # true
s2 = {} # 定义一个字典类型
isinstance(s2,dict) # true
# 混合类型判断,通过for索引取值判断
isinstance(s,(tuple,list,dict))
标签:classinfo,--,true,object,类型,isinstance,十九,函数
From: https://www.cnblogs.com/dream-ze/p/17450149.html