is and ==

id()函数是查看该对象所在内存地址。每个对象都有对应的内存地址,如:

is 用于判断两个变量引用对象是否为同一个, == 用于判断引用变量的值是否相等。类似于Java中的equal()和==。反之,is not 用于判断两个变量是否引用自不同的对象,而 != 用于判断引用变量的值是否不等。

在上面的例子中,我们分别打印了两种运算符的比较结果和内存地址,所以可以得出:

  • 只要各对象的值一样,则 x == y 的值一定为True;
  • 如果对象的类型为整数或字符串且值一样,则 x == y和 x is y 的值为True。(经测试浮点型数值,只有正浮点数符合这条规律,负浮点数不符合);
  • list,tuple,dict,set值一样的话,x is y 则为False;
  • x == y 与 x != y 的值相反,x is y 与 x is not y 的值相反。

 

posted @ 2018-07-24 22:20  fireflymao  阅读(205)  评论(0编辑  收藏  举报