当我们比较数字是否相等时,我们可以选择一些不同的方法来验证结果。在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和==。名字简单好记,用法也不难,但需要朋友们在学习时加以区分和理解。
本文为原创文章,版权归知行编程网所有,欢迎分享本文,转载请保留出处!
你可能也喜欢
- ♥ Python中绝对引用和相对引用的区别12/28
- ♥ 如何在 python 中使用魔法11/24
- ♥ Python 如何判断程序是否正在运行?09/02
- ♥ 8000字 | Python数据可视化,完整版实操指南 !02/05
- ♥ 如何验证是否安装了python01/05
- ♥ 20行 Python 代码实现验证码识别01/03
内容反馈