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 爬虫学习笔记之正则表达式

    Python 爬虫学习笔记之正则表达式

    正则表达式是用来匹配字符串非常强大的工具,在其他编程语言中同样有正则表达式的概念,Python同样不例外,利用了正则表达式,我们想要从返回的页面内容提取出我们想要的内容就易如反掌了。
    2016-09-09
  • python读取Excel实例详解

    python读取Excel实例详解

    这篇文章主要为大家详细介绍了python读取Excel的实例,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-08-08
  • 解决jupyter notebook图片显示模糊和保存清晰图片的操作

    解决jupyter notebook图片显示模糊和保存清晰图片的操作

    这篇文章主要介绍了解决jupyter notebook图片显示模糊和保存清晰图片的操作方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-04-04
  • python模拟登陆网站的示例

    python模拟登陆网站的示例

    这篇文章主要介绍了python模拟登陆网站的示例,帮助大家更好的理解和学习使用python,感兴趣的朋友可以了解下
    2021-03-03
  • python中any()函数的基本用法详解

    python中any()函数的基本用法详解

    any() 是 Python 内置的函数之一,用于判断一个可迭代对象(如列表、元组、集合等)中是否至少有一个元素为真(True),这篇文章主要介绍了python中any()函数的基本用法详解,需要的朋友可以参考下
    2025-09-09
  • 细数nn.BCELoss与nn.CrossEntropyLoss的区别

    细数nn.BCELoss与nn.CrossEntropyLoss的区别

    今天小编就为大家整理了一篇细数nn.BCELoss与nn.CrossEntropyLoss的区别,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-02-02
  • 通过python将大量文件按修改时间分类的方法

    通过python将大量文件按修改时间分类的方法

    今天小编就为大家分享一篇通过python将大量文件按修改时间分类的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-10-10
  • 运筹学-Python实现图论与最短距离

    运筹学-Python实现图论与最短距离

    需要求解任意两个节点之间的最短距离,使用 Floyd 算法,只要求解单源最短路径问题,有负权边时使用 Bellman-Ford 算法,没有负权边时使用 Dijkstra 算法,本节我们只讨论Dijkstra 算法,需要的朋友可以参考一下
    2022-01-01
  • Python基于pygame实现图片代替鼠标移动效果

    Python基于pygame实现图片代替鼠标移动效果

    这篇文章主要介绍了Python基于pygame实现图片代替鼠标移动效果,可实现将鼠标箭头转换成图形的功能,涉及pygame图形操作的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-11-11
  • python中hasattr方法示例详解

    python中hasattr方法示例详解

    hasattr()函数是Python中一个非常有用的工具,可以帮助我们在运行时检查对象的属性或方法,通过合理地使用hasattr()函数,我们可以写出更灵活、可维护和健壮的代码,这篇文章主要介绍了python中hasattr方法,需要的朋友可以参考下
    2023-12-12

最新评论