python中isinstance()和insubclass()的实现

 更新时间:2025年09月15日 08:22:29   作者:sonrisa_  
本文主要介绍了python中isinstance()和insubclass()的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

​​isinstance()和issubclass()的功能与用法​​

​​1.isinstance(obj, classinfo)​​

​功能​​:检查对象 obj 是否是 classinfo 类(或其子类)的实例。
​返回值​​:TrueFalse
​用法​​:

class Animal: pass
class Dog(Animal): pass
 
dog = Dog()
print(isinstance(dog, Dog))    # True(直接类)
print(isinstance(dog, Animal)) # True(父类)
print(isinstance(dog, str))   # False(无关类)

​特点​​:

支持检查多个类(元组形式):

print(isinstance(dog, (Dog, Animal, str))) # True(匹配任一即可)

适用于动态类型校验(如函数参数验证)。

​​2.issubclass(cls, classinfo)​​

​功能​​:检查类 cls 是否是 classinfo 的子类(或自身)。
​返回值​​:TrueFalse
​用法​​:

class Animal: pass
class Dog(Animal): pass
 
print(issubclass(Dog, Animal))  # True(子类)
print(issubclass(Dog, Dog))     # True(自身)
print(issubclass(Dog, object))  # True(所有类继承自 object)
print(issubclass(Animal, Dog))  # False

​特点​​:

同样支持元组检查多类:

print(issubclass(Dog, (Animal, str)))  # True

常用于类关系设计或框架中约束继承关系。

​​核心区别​​

​​函数​​​​作用对象​​​​检查目标​​​​典型场景​​
isinstance()对象 (obj)是否是某类的实例运行时类型验证
issubclass()类 (cls)是否是某类的子类设计时继承关系校验

​示例场景​​:

def process_animal(animal):
    if not isinstance(animal, Animal):
        raise TypeError("必须传入 Animal 或其子类实例")
    # 处理逻辑...
 
class Bird(Animal): pass
process_animal(Bird())  # 通过
process_animal("abc")   # 报错

到此这篇关于python中isinstance()和insubclass()的实现的文章就介绍到这了,更多相关python isinstance() insubclass()内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • python 画3维轨迹图并进行比较的实例

    python 画3维轨迹图并进行比较的实例

    今天小编就为大家分享一篇python 画3维轨迹图并进行比较的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-12-12
  • json 转 mot17数据格式的实现代码 (亲测有效)

    json 转 mot17数据格式的实现代码 (亲测有效)

    这篇文章主要介绍了json 转 mot17数据格式的实现代码 (亲测有效),本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-03-03
  • Python中raise用法简单实例(超级详细,看了无师自通)

    Python中raise用法简单实例(超级详细,看了无师自通)

    python中raise语句用于手动触发异常,通过raise语句可以在代码中显式地引发异常,从而使程序进入异常处理流程,下面这篇文章主要给大家介绍了关于Python中raise用法的相关资料,需要的朋友可以参考下
    2024-03-03
  • 利用Python Matlab绘制曲线图的简单实例

    利用Python Matlab绘制曲线图的简单实例

    们经常会遇到这种情况,有一个数学函数,我们希望了解他的图像,这个时候使用python 的matplotlib就可以帮助我们,下面这篇文章主要介绍了利用Python Matlab绘制曲线图的相关资料,需要的朋友可以参考下
    2021-12-12
  • python如何启动cmd批处理文件

    python如何启动cmd批处理文件

    这篇文章主要介绍了python如何启动cmd批处理文件问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-06-06
  • Python获取PDF文档的各种页面信息

    Python获取PDF文档的各种页面信息

    了解PDF页面信息对于有效处理、编辑和管理PDF文件至关重要,PDF文件通常包含多个页面,每个页面可能有不同的尺寸、方向、旋转角度以及其他属性,这篇文章将介绍如何使用Python获取PDF文档的各种页面信息,需要的朋友可以参考下
    2025-02-02
  • python读取.mat文件的数据及实例代码

    python读取.mat文件的数据及实例代码

    这篇文章主要介绍了python读取.mat文件的数据的方法,本文给大家介绍的非常详细,具有一定的参考借鉴价值 ,需要的朋友可以参考下
    2019-07-07
  • 利用python GDAL库读写geotiff格式的遥感影像方法

    利用python GDAL库读写geotiff格式的遥感影像方法

    今天小编就为大家分享一篇利用python GDAL库读写geotiff格式的遥感影像方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-11-11
  • python中的itertools的使用详解

    python中的itertools的使用详解

    这篇文章主要介绍了python中的itertools的使用详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-01-01
  • Python处理数据之匹配两个Excel文件数据的实现方法

    Python处理数据之匹配两个Excel文件数据的实现方法

    这篇文章主要给大家介绍了关于Python处理数据之匹配两个Excel文件数据的实现方法,可以使用Python的Pandas库来实现两层循环匹配两个Excel文件,需要的朋友可以参考下
    2023-09-09

最新评论