国际访客建议访问 Primers 编程伙伴 国际版站点 > Python 教程 > issubclass 以获得更好的体验。

# Python 的内置函数 issubclass

请查看 Python 内建函数列表 了解更多相关 API。

说明:判断是否是某个类的子类。

# 函数说明

def issubclass(cls, classinfo) -> bool:
    '''
    获取输入

    :param cls: 一个类
    :param classinfo: 一个类型
    :return: 如果 cls 是 classinfo 的子类则返回 True,否则返回 False
    '''

!subtitle:说明

判断一个类是否是另一个类的子类(直接或间接继承)。

classinfo 可以是多个类构成的元组或 union 类型,cls 只要是其中一个类的子类即返回 True

clsclassinfo 是相同的类时,也返回 True

!subtitle:参数

  • cls - 要判断的子类

  • classinfo - 要判断的父类

!subtitle:返回值

  • 如果 clsclassinfo 的子类,则返回 True

  • 如果 cls 不是 classinfo 的子类,则返回 True

# 示例

运行示例

print(issubclass(bytes, str))           # False
print(issubclass(int, float))           # False
print(issubclass(int, object))          # True,object 是所有类型的终极父类

class Animal:                           # 动物
    pass

class Mammal(Animal):                   # 哺乳动物
    pass

class Dog(Mammal):                      # 狗
    pass

# 简单继承检查
print(issubclass(Dog, Mammal))          # True,直接继承
print(issubclass(Dog, Animal))          # True,间接继承
print(issubclass(Dog, Dog))             # True,相同类

# 多个类
print(issubclass(Dog, str|Mammal))      # True,union 类型满足其一
print(issubclass(Dog, (str, Mammal)))   # True,元组满足其一

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

# 推荐阅读

本文 更新于: 2025-11-27 09:37:59 创建于: 2025-11-27 09:37:59