十九isinstance()函数 -- 检查类型

Posted Dream-Z

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了十九isinstance()函数 -- 检查类型相关的知识,希望对你有一定的参考价值。

【十九】isinstance()函数 -- 检查类型(2)

【1】作用

  • 这个函数有点类似type函数的定义

    • type判断 函数类型是什么
    • 而isinstance是 通过判断对象是否是已知的类型
  • 但是isinstance比type高级一些(功能上的差异)

  • 具体差异:

    • type()
      • 不考虑继承关系(子类不是父类类型)
    • isinstance()
      • 考虑继承关系(子类是父类类型)

【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)) 

Python isinstance() 函数

isinstance() 函数来判断一个对象是否是一个已知的类型,类似 type()。

isinstance() 与 type() 区别:

  • type() 不会认为子类是一种父类类型,不考虑继承关系。

  • isinstance() 会认为子类是一种父类类型,考虑继承关系。

如果要判断两个类型是否相同推荐使用 isinstance()。

语法

以下是 isinstance() 方法的语法:

isinstance(object, classinfo)

参数

  • object -- 实例对象。
  • classinfo -- 可以是直接或间接类名、基本类型或者由它们组成的元组。

返回值

如果对象的类型与参数二的类型(classinfo)相同则返回 True,否则返回 False。。


实例

以下展示了使用 isinstance 函数的实例:

>>>a = 2 >>> isinstance (a,int) True
>>> isinstance (a,str) False
>>> isinstance (a,(str,int,list)) # 是元组中的一个返回 True True

以上是关于十九isinstance()函数 -- 检查类型的主要内容,如果未能解决你的问题,请参考以下文章

Pytthon:type函数和 isinstance 函数及区别

isinstance 和 issubclass

Python:递归 isinstance 检查

isinstance() 函数

Python isinstance() 函数

Python isinstance() 函数