#Python 的内置函数 issubclass
说明:判断是否是某个类的子类。
#函数说明
def issubclass(cls, classinfo) -> bool:
'''
获取输入
:param cls: 一个类
:param classinfo: 一个类型
:return: 如果 cls 是 classinfo 的子类则返回 True,否则返回 False
'''
说明
判断一个类是否是另一个类的子类(直接或间接继承)。
classinfo
可以是多个类构成的元组或 union
类型,cls
只要是其中一个类的子类即返回 True
。
cls
和 classinfo
是相同的类时,也返回 True
。
参数
cls
- 要判断的子类classinfo
- 要判断的父类
返回值
- 如果
cls
是classinfo
的子类,则返回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