一、区别
isinstance和type都可用于判断对象的类型,但它们有明显区别:
1. 判断方式
• type:直接返回对象的类型,是通过比较对象的类型是否完全相同来判断,更关注对象确切的类型本身。
• isinstance:判断一个对象是否是指定类型(或其派生类型)的实例,考虑了继承关系,更灵活些。
2. 对继承的处理
• type:不会考虑继承关系。比如一个类B继承自类A,创建B的实例b,type(b)返回的是B类型,而不是A类型,即使B是A的子类。
• isinstance:会考虑继承关系。对于上述例子中的b,isinstance(b, A)会返回True,因为b是A的子类B的实例。
二、特点
1. type的特点
• 精确性:能准确给出对象所属的具体类型,不涉及继承层面的模糊判断,结果很精准。
• 简单直接:使用起来较为简单,就是单纯查看对象确切的类型是什么。
2. isinstance的特点
• 兼容性:在处理继承体系时非常有用,能判断对象是否属于某个类型及其派生类型,符合面向对象编程中多态的概念。
• 灵活性:可用于判断对象是否属于多种类型中的某一种,比如isinstance(obj, (type1, type2)),只要对象是type1或type2其中之一的实例就返回True。
标签:判断,Python,继承,对象,类型,isinstance,type,软件测试 From: https://blog.csdn.net/weixin_46652722/article/details/143757383