我们在数学中想要判断两个对象是否相等,可以使用=号。在python中由于比较的数据不一定是数值,所以我们的符号有is和==可以选择。那么在不同的条件下,选择is还是==是有所不同的。下面我们在身份运算符中寻找is和==在判断对象引用上的区别,帮助大家在使用身份运算符时能更好的选择,具体内容如下:
身份运算符是用来判断两个变量是否是引用了相同内存地址的运算符。
两个变量的值相等,它们不一定就是引用了相同的内存地址,但如果两个变量引用了相同的内存地址,那么他们的值必然相等。
身份运算符说白了其实就是is符号。它可以用来比较两个变量是否引用了同一个对象。
1 2 3 4 5 |
|
顾名思义,is是“相同”,而==是指两者之间的”相等“关系。所谓相同,比较的是两者之间的在内存中的位置,
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
|
我们看到,上面a,b,c的地址相同,所以他们互相之间”相同“
而相等则两者之间的数值对应相等
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
|
很多人看到这肯定是一锅浆糊了,其实就是一个原则,能用==就不用is。除了一种情况,那就是判断对象是否是None。
1 2 |
|
以上就是我们本篇探究python运算符中在不同的情况下选择is还是==,相信大家已经明白两个的区别和用法了,小编还是推荐使用==多一点。