知行编程网知行编程网  2022-12-01 16:00 知行编程网 隐藏边栏  32 
文章评分 0 次,平均分 0.0
导语: 本文主要介绍了关于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**。为什么?因为是比较对象是否相同,而==比较的是相同与不相同的值。如果打印两个id值,显然是不一样的。

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

在使用==判断的时候,其实是调用了魔术函数__eq__()来判断它们的值是否相等。

一般情况下我们在判断是否是同一个对象时使用is而不是==,所以在判断对象的类型时推荐使用is或者直接使用isinstance()方法。

class Person():
   pass
p = Person()
print(type(p) is Person)  # 结果 True



总结:

  • ==就是比较两个对象的“内容”是否相等,即比较两个对象的“值”是否相等,而不管这两个对象在内存中的引用地址是否相同。
  • is比较两个实例对象是否完全一样,是否是同一个对象,占用的内存地址是否相同。也就是说,是比较两个条件:1.内容相同。 2.“内存中的地址”是一样的。
  • 使用是注意python对小整数使用对象池存储的问题,以及字符串的intern机制存储问题,命令行操作和Pycharm操作有点区别,因为Pycharm优化了解释器。

  • python中对于None值的比较:使用is

以上就是我们在python中用来判断是否相等的is和==。名字简单好记,用法也不难,但需要朋友们在学习时加以区分和理解。

本文为原创文章,版权归所有,欢迎分享本文,转载请保留出处!

知行编程网
知行编程网 关注:1    粉丝:1
这个人很懒,什么都没写
扫一扫二维码分享