python中如何比较对象是否相等-创新互联

这篇文章主要介绍了python中如何比较对象是否相等,具有一定借鉴价值,需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获。下面让小编带着大家一起了解一下。

为平度等地区用户提供了全套网页设计制作服务,及平度网站建设行业解决方案。主营业务为网站制作、成都网站建设、平度网站设计,以传统方式定制建设网站,并提供域名空间备案等一条龙服务,秉承以专业、用心的态度为用户提供真诚的服务。我们深信只要达到每一位用户的要求,就会得到认可,从而选择与我们长期合作。这样,我们也可以走得更远!

我们在比较数目是否相等的时候,可以选择一些不同的方法来验证结果。在python中判断对象的相等就不是这么简单,因为也许是判断一个值,也是是判断一个类别,并不是我们在数学中针对于数量的判断。下面小编就为大家讲解两个判断对象的方法,以及在判断对象的区别上有什么不同。

a = [1, 2, 3]
b = [1, 2, 3]
print(a is b)
print(a == b)

大家可以先猜猜结果是什么。我之前说了python的变量就是个便利贴,\[1, 2, 3\]都是直接赋值给两个变量,也就是说生成了两个对象,所以a,b指向的对象不一样。所以结果出来了,**第一个是False,第二个是True**。为什么呢?因为is比较的是对象相同不相同,但是==比较的是值相同不相同。如果打印两个id值的话,显然是不同的。

print(id(a), id(b))# 结果1735698385160 1735679028936

在用==进行判断的时候实际是调用魔法函数__eq__()来判断他们的值是否相等的。

总的来说,我们在判断是否是同一个对象的时候就用is,不要用==,所以在判断该对象是什么类型的时候建议用is或者直接用isinstance()这个方法。

class Person():
   pass
p = Person()
print(type(p) is Person)  # 结果 True
  • == 是比较两个对象的「内容」是否相等,即两个对象的“值“”是否相等,不管两者在内存中的引用地址是否一样。

  • is 比较的是两个实例对象是不是完全相同,它们是不是同一个对象,占用的内存地址是否相同。即is比较两个条件:1.内容相同。2.「内存中地址」相同。

  • 使用is注意python对于小整数使用对象池存储问题,和字符串的intern机制存储问题,并且命令行运行和Pycharm运行有点不一样,因为Pycharm对解释器进行了优化。

感谢你能够认真阅读完这篇文章,希望小编分享python中如何比较对象是否相等内容对大家有帮助,同时也希望大家多多支持创新互联网站建设公司,,关注创新互联行业资讯频道,遇到问题就找创新互联网站建设公司,,详细的解决方法等着你来学习!


当前标题:python中如何比较对象是否相等-创新互联
网站URL:http://scyanting.com/article/pjeop.html