用于区分 type() 和 isinstance() 的 Python 程序

要理解这个例子,你应该具备以下 Python 编程 主题的知识


type() 和 isinstance() 之间的区别

让我们通过下面的示例代码来理解 type()isinstance() 之间的区别。

class Polygon:
    def sides_no(self):
        pass

class Triangle(Polygon):
    def area(self):
        pass

obj_polygon = Polygon()
obj_triangle = Triangle()

print(type(obj_triangle) == Triangle)   	# true
print(type(obj_triangle) == Polygon)    	# false

print(isinstance(obj_polygon, Polygon)) 	# true
print(isinstance(obj_triangle, Polygon))	# true

输出

True
False
True
True

在上面的例子中,我们看到 type() 无法区分一个类的实例是否与基类有某种关联。在我们的例子中,虽然 obj_triangle 是子类 Triangle 的一个实例,但它继承自基类 Polygon。如果你想将子类的对象与基类关联起来,你可以通过 isinstance() 实现这一点。

你觉得这篇文章有帮助吗?

我们的高级学习平台,凭借十多年的经验和数千条反馈创建。

以前所未有的方式学习和提高您的编程技能。

试用 Programiz PRO
  • 交互式课程
  • 证书
  • AI 帮助
  • 2000+ 挑战