36. Python issubclass()

发布时间:2023-12-08

Python issubclass()

更新:2022-07-24 11:11 如果函数的第一个参数是第二个参数的子类,则isinstance()函数返回 true。实际上,我们可以说这个函数是用来检查给定的类是否是另一个类的子类。

issubclass(class, classinfo)  # where class specify the class name 

字节()参数: 取 2 个参数。我们还可以传递一个类元组作为 classinfo 参数,在这种情况下,如果类是元组中任何类的子类,函数将返回 True。

参数 描述 必需/可选
班级 要检查的类别 需要
分类(classify) 类、类型或类和类型的元组 需要

字节()返回值

它返回真或假的布尔值。

投入 返回值
类是子类 真实的
类不是子类 错误的
在任何其他情况下 TypeError exception

Python 中issubclass()方法的示例

示例issubclass()是如何工作的?

class Polygon:
  def __init__(polygonType):
    print('Polygon is a ', polygonType)
class Triangle(Polygon):
  def __init__(self):
    Polygon.__init__('triangle')
print(issubclass(Triangle, Polygon))
print(issubclass(Triangle, list))
print(issubclass(Triangle, (list, Polygon)))
print(issubclass(Polygon, (list, Polygon)))

输出:

True
False
True
True

示例 2:检查内置类的子类

print('bool is the subclass of int: ', issubclass(bool, int))
print('float is the subclass of int: ', issubclass(float, int))
print('str is the subclass of list: ', issubclass(str, list))
import collections
print('collections.OrderedDict is the subclass of dict: ', issubclass(collections.OrderedDict, dict))

输出:

bool is the subclass of int: True
float is the subclass of int: False
str is vsubclass of list: False
collections.OrderedDict is the subclass of dict: True

示例 3: issubclass()方法使用一个元组来指定多个 classinfo 名称

print(issubclass(bool, (int, str, list)))
print(issubclass(float, (int, str, list))

输出:

True
False