首页Python【Python内置函数】i...

【Python内置函数】issubclass()函数

Python 提供了许多内置函数,这些函数是Python语言的一部分,可以直接在Python程序中使用而无需导入任何模块。

本系列将会陆续整理分享一些的Python内置函数。

文章配套代码获取有以下两种途径:
  • 通过百度网盘获取:
链接:https://pan.baidu.com/s/11x9_wCZ3yiYOe5nVcRk2CQ?pwd=mnsj 提取码:mnsj
  • 前往GitHub获取
https://github.com/returu/Python_built-in_functions





01
简介

issubclass() 函数用于检查一个类(class)是否是另一个类(或类集合)的子类(无论是直接子类、间接子类还是虚拟子类)。该函数对于面向对象编程(OOP)中的类继承关系检查非常有用。

issubclass() 函数的基本语法如下:

issubclass(class, classinfo)
参数说明:
  • class:需要检查的类;
  • classinfo:是单个类或者包含多个类的元组,用于与class进行比较。

返回值:

如果classclassinfo的子类(包括两者相同的情况),则返回True,否则返回False

如果classclassinfo不符合上述类型要求(即不是类对象、由类对象组成的元组或联合类型),会引发TypeError异常。

02
使用

下面是一些使用 issubclass() 函数的示例:

  • 示例 1:基本使用

classinfo可以是一个类对象,此时直接判断class是否是该类的子类。

classinfo也可以是一个由类对象组成的元组,或者是一个递归包含此类元组的更复杂的结构。这种情况下,会依次检查class是否是元组中任何一个类的子类,只要有一个匹配就返回True
class Animal:
    pass

class Dog(Animal):
    pass

class Cat(Animal):
    pass

# 检查 Dog 是否是 Animal 的子类
print(issubclass(Dog, Animal))
# 输出: True

# 检查 Animal 是否是自身的子类
print(issubclass(Animal, Animal))
# 输出: True

# 检查 Cat 是否是 Dog 的子类
print(issubclass(Cat, Dog))
# 输出: False

# 检查 Dog 是否是 (Animal, Cat) 中的任一类的子类
print(issubclass(Dog, (Animal, Cat)))
# 输出: True


  • 示例 2:使用联合类型作为classinfo参数

Python 3.10开始,classinfo还可以是一个联合类型(Union Type),这是类型提示的一部分,用于表示一个变量可以是多个类型中的任何一个。在这种情况下,如果classclassinfo中任何条目的子类,则返回 True

from typing import Union

class Animal:
    pass

class Dog(Animal):
    pass

class Cat(Animal):
    pass

# 使用联合类型
print(issubclass(Dog, Union[Cat, Animal]))
输出: # True
print(issubclass(Dog, Union[Cat, int]))
输出: # False


本篇文章来源于微信公众号: 码农设计师

RELATED ARTICLES

欢迎留下您的宝贵建议

Please enter your comment!
Please enter your name here

- Advertisment -

Most Popular

Recent Comments