isinstance() 函数

发布时间 2023-07-09 21:38:19作者: 猪油哥

 

 


一、isinstance() 函数

  下面从用途描述、使用方法、案例分析、三个方面进行讲解。

1.1 用途描述

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

1.2 使用方法

  • 语法:
    • isinstance(object, classinfo)
  • 参数含义:
    • object – 实例对象。
    • classinfo – 可以是直接或间接类名、基本类型或者由它们组成的元组。
  • 返回值:
    • 如果对象的类型与参数二的类型(classinfo)相同则返回 True,否则返回 False。

1.3 案例分析

  需要注意的是第三个小例子,a的类型只要是元组中的一个就会返回True。

a = 9
isinstance (a,int)
isinstance (a,str)
isinstance (a,(str,int,list))   # 是元组中的一个返回 True
"""--------------------------------------输出-------------------------------------------"""
True
False
True
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • type() 与 isinstance()区别,通过下面代码片段可得出以下要点:
    • type() 不会认为子类是一种父类类型,不考虑继承关系。
    • isinstance() 会认为子类是一种父类类型,考虑继承关系。
    • 如果要判断两个类型是否相同推荐使用 isinstance()。
class A:
    pass
 
class B(A):
    pass
isinstance(A(), A)    # returns True
type(A()) == A        # returns True
isinstance(B(), A)    # returns True
type(B()) == A        # returns False
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9