python中type()和isinstance() 使用区别
在这个例子中,你将学习如何区分 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()实现。
相关文章