Python 内建函数列表 > Python 的内置函数 issubclass
Python 的内置函数 issubclass 用于检查一个类是否是另一个类的子类(直接或间接继承)。它是 Python 面向对象编程中类型检查的重要工具。
issubclass(class, classinfo)
class:需要检查的类(必须是类对象,不能是实例)
classinfo:可以是一个类对象,或者由类对象组成的元组
返回布尔值:
True:如果 class 是 classinfo 的子类
False:其他情况
当 classinfo 是单个类时,检查标准的继承关系
当 classinfo 是元组时,检查 class 是否是其中任何一个类的子类
会自动处理多重继承的情况
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
第一个参数必须是类对象,不能是实例
d = Dog()
# issubclass(d, Mammal) # 会引发 TypeError
如果 classinfo 不是类或元组,会引发 TypeError
虚基类(通过 ABC 模块创建的抽象基类)也能被正确识别
类型检查与验证
框架开发中的插件系统
接口实现验证
动态类注册系统
isinstance() 检查对象实例与类的关系
issubclass() 检查类与类之间的关系
在 Python 3 中,issubclass 还支持检查协议类(Protocol classes)和抽象基类(ABCs),使其在现代 Python 类型系统中更加灵活。