Python 的内置函数 issubclass() 用于检查一个类是否是另一个类的子类。其基本语法为:
issubclass(class, classinfo)
参数说明:
class:要检查的类(必须是类对象)classinfo:可以是一个类对象,也可以是包含多个类对象的元组
函数返回一个布尔值:
- 如果
class是classinfo的子类(或元组中任意一个类的子类),返回True - 否则返回
False
使用示例:
class Parent:
pass
class Child(Parent):
pass
print(issubclass(Child, Parent)) # 输出:True
print(issubclass(Parent, Child)) # 输出:False
print(issubclass(Child, (Parent, int, str))) # 输出:True
注意事项:
issubclass()的第一个参数必须是类对象,不能是实例对象- 如果
classinfo不是类对象或由类对象组成的元组,会引发TypeError - 一个类被认为是其自身的子类
object是所有类的基类(除了它自己)
与 isinstance() 的区别:
issubclass()检查类与类之间的继承关系isinstance()检查对象与类之间的实例关系
应用场景:
- 在框架开发中验证类的继承关系
- 实现插件系统时检查插件类是否符合接口要求
- 类型检查或类型断言时使用
- 动态加载模块时验证类的有效性