Python issubclass()

时间:2020-02-23 14:42:51  来源:igfitidea点击:

Python的issubclass()函数用于检查一个类是否为另一个类的子类。

Python issubclass()

Python的issubclass()函数语法为:

issubclass(class, classinfo)

如果class是classinfo的子类,则此函数返回True。

类被认为是其自身的子类。
我们还可以传递一个类的元组作为classinfo参数,在这种情况下,如果class是该元组中任何类的子类,则函数将返回True。

由于object是Python的基类,因此如果classinfo作为object类传递,则函数将返回True。

Python issubclass()示例

让我们为示例定义一些类和子类。

class Super:
  pass

class Child(Super):
  pass

class GrandChild(Child):
  pass

现在,我们来看一下带有不同参数的issubclass()函数的输出。

print(issubclass(Child, Super))  # 1st level inheritance
print(issubclass(GrandChild, Super))  # multilevel inheritance
print(issubclass(Child, Child))  # same class
print(issubclass(Super, tuple))  # no inheritance
print(issubclass(Super, object))  # object is the base class

输出:

True
True
True
False
True

具有类元组的Python issubclass()

print(issubclass(GrandChild, (str, list, Super)))

输出:True

让我们看另一个示例,在该示例中,我们将检查OrderedDict是否为dict的子类。

from collections import OrderedDict
print(issubclass(OrderedDict, dict))

输出:True

Python issubclass()与isinstance()

Python的issubclass()和isinstance()函数非常相似,除了前者适用于类,而后者适用于类的实例。