说明
《Python 教程》 持续更新中,提供建议、纠错、催更等加作者微信: gairuo123(备注:pandas教程)和关注公众号「盖若」ID: gairuo。跟作者学习,请进入 Python学习课程。欢迎关注作者出版的书籍:《深入浅出Pandas》 和 《Python之光》。
Python 的内置函数 issubclass(class, classinfo)
主要用于判断参数 class 是否是类型参数 classinfo 的子类。
一些例子:
issubclass(bool, int)
# True
issubclass(type(9), int)
# True
from collections import abc
issubclass(str, (abc.Sequence, type))
issubclass(str, abc.Sequence | type)
# True
issubclass(bytes, abc.Sequence)
# True
issubclass(range, abc.Sequence)
# True
issubclass(set, abc.Sequence | abc.Iterable)
# True
issubclass(list, list)
# True
它有两个参数:
issubclass(cls, class_or_tuple, /)
如果 cls 是 class_or_tuple 的子类(直接、间接或抽象基类),则返回 True。类被视为自身的子类。class_or_tuple 可以是类对象的元组(或递归地,其他此类元组)或联合类型, 在这种情况下,如果类是 class_or_tuple 中任何条目的子类,则返回True。在任何其他情况下,都会引发 TypeError 异常。
issubclass() 返回:
在 3.10 版更改: class_or_tuple 可以是一个 union 类型(联合类型,可以用 | 符号连接)。
自定义类检测
class Polygon:
def __init__(polygonType):
print('Polygon is a ', polygonType)
class Triangle(Polygon):
def __init__(self):
Polygon.__init__('triangle')
issubclass(Triangle, Polygon)
# True
issubclass(Triangle, list)
# False
issubclass(Triangle, (list, Polygon))
# True
issubclass(Polygon, (list, Polygon))
# True
需要注意的是,类被视为自身的一个子类。
更新时间:2022-05-23 00:15:52 标签:python 类 子类 检测