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

Python 的内置函数 issubclass 用于检查一个类是否是另一个类的子类(直接或间接继承)。它是 Python 面向对象编程中类型检查的重要工具。

语法

1
2
issubclass(class, classinfo)

参数说明

  • class:需要检查的类(必须是类对象,不能是实例)
  • classinfo:可以是一个类对象,或者由类对象组成的元组

返回值

返回布尔值:

  • True:如果 classclassinfo 的子类
  • False:其他情况

工作方式

  1. classinfo 是单个类时,检查标准的继承关系
  2. classinfo 是元组时,检查 class 是否是其中任何一个类的子类
  3. 会自动处理多重继承的情况

示例代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
class Animal:
pass

class Mammal(Animal):
pass

class Dog(Mammal):
pass

# 简单继承检查
print(issubclass(Dog, Mammal)) # True
print(issubclass(Dog, Animal)) # True

# 使用元组检查
print(issubclass(Dog, (str, Mammal))) # True

# 非继承关系
print(issubclass(Dog, str)) # False

注意事项

  1. 第一个参数必须是类对象,不能是实例
    1
    2
    d = Dog()  
    # issubclass(d, Mammal) # 会引发 TypeError
  2. 如果 classinfo 不是类或元组,会引发 TypeError
  3. 虚基类(通过 ABC 模块创建的抽象基类)也能被正确识别

典型应用场景

  1. 类型检查与验证
  2. 框架开发中的插件系统
  3. 接口实现验证
  4. 动态类注册系统

与 isinstance() 的区别

在 Python 3 中,issubclass 还支持检查协议类(Protocol classes)和抽象基类(ABCs),使其在现代 Python 类型系统中更加灵活。


Python 的内置函数 issubclass》 是转载文章,点击查看原文