python中type()和isinstance() 使用区别

2022-05-03 00:00:00 python 区别 type

在这个例子中,你将学习如何区分 type() 和 isinstance() 。

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

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的。如果你想把子类的对象与基类联系起来,你可以用instance()实现。

相关文章