Python 的内置函数 isinstance

Python 内建函数列表 > Python 的内置函数 isinstance

Python 的内置函数 isinstance() 用于判断一个对象是否属于某个类或类型,或者是否属于由这些类型组成的元组中的一个。它是 Python 中类型检查的重要工具,相比于 type() 函数具有更灵活的类型检查能力。

其语法为:

isinstance(object, classinfo)

其中:

  • object 是要检查的对象
  • classinfo 可以是一个类型对象,或者由类型对象组成的元组

isinstance() 的主要特点包括:

  1. 支持继承关系检查:当 objectclassinfo 的子类实例时也会返回 True
  2. 返回布尔值:符合条件返回 True,否则返回 False

常见应用场景:

  • 类型检查:验证输入参数的类型是否符合预期
  • 多类型处理:处理可能属于多种类型的对象
  • 继承关系验证:检查对象是否属于某个类或其子类

示例:

# 基本类型检查
num = 42
print(isinstance(num, int))  # True

# 继承关系检查
class Parent: pass
class Child(Parent): pass
obj = Child()
print(isinstance(obj, Parent))  # True

# 多类型检查
value = 3.14
print(isinstance(value, (int, float)))  # True

# 与 type() 的区别
print(isinstance(True, int))  # True (因为 bool 是 int 的子类)
print(type(True) == int)  # False

注意事项:

  • 对于抽象基类(ABC)的检查,通常使用 collections.abc 模块中的抽象基类
  • 在 Python 3 中,类与类型已经统一,因此 isinstance() 可以用于检查内置类型和自定义类
  • 过度使用类型检查可能会影响代码的灵活性,在 Python 中更推荐"鸭子类型"的编程风格

你可能感兴趣的:(python,笔记)