Python 内建函数列表 > Python 的内置函数 isinstance
Python 的内置函数 isinstance() 用于判断一个对象是否属于某个类或类型,或者是否属于由这些类型组成的元组中的一个。它是 Python 中类型检查的重要工具,相比于 type() 函数具有更灵活的类型检查能力。
其语法为:
1isinstance(object, classinfo) 2
其中:
object是要检查的对象classinfo可以是一个类型对象,或者由类型对象组成的元组
isinstance() 的主要特点包括:
- 支持继承关系检查:当
object是classinfo的子类实例时也会返回 True - 返回布尔值:符合条件返回 True,否则返回 False
常见应用场景:
- 类型检查:验证输入参数的类型是否符合预期
- 多类型处理:处理可能属于多种类型的对象
- 继承关系验证:检查对象是否属于某个类或其子类
示例:
1# 基本类型检查 2num = 42 3print(isinstance(num, int)) # True 4 5# 继承关系检查 6class Parent: pass 7class Child(Parent): pass 8obj = Child() 9print(isinstance(obj, Parent)) # True 10 11# 多类型检查 12value = 3.14 13print(isinstance(value, (int, float))) # True 14 15# 与 type() 的区别 16print(isinstance(True, int)) # True (因为 bool 是 int 的子类) 17print(type(True) == int) # False 18
注意事项:
- 对于抽象基类(ABC)的检查,通常使用
collections.abc模块中的抽象基类 - 在 Python 3 中,类与类型已经统一,因此
isinstance()可以用于检查内置类型和自定义类 - 过度使用类型检查可能会影响代码的灵活性,在 Python 中更推荐"鸭子类型"的编程风格
《Python 的内置函数 isinstance》 是转载文章,点击查看原文。
