美文网首页
python- is 和 ==的区别

python- is 和 ==的区别

作者: wuyunchao | 来源:发表于2020-06-27 23:37 被阅读0次

is 和 ==都可以当作运算符去比较两个对象的值是否一致,但是它们有什么区别呢?

在 Python 中,对象包含的三个基本要素,分别是:id(内存地址标识)、type(数据类型)和 value(值)。
is 运算符是同一性运算符,用于判断两个对象是否相同,以 id地址为判断因素。
== 运算符是相等运算符,用于判断两个对象是否相等,以 value 为判断因素。

>>> a = '我是a'
>>> b = '我是a'
>>> a is b
False
>>> a == b
True
>>> id(a)
1587859669616
>>> id(b)
1587859671152
>>>

可以看到a 和 b 的值相同所以使用 == 返回的是True , 但是它们的 id地址是不同的使用 is 时就返回了False。

注意:

上面的代码在pycharm中运行和在CMD python解释器运行的结果不同,在pycharm中使用is 和 == 返回的都是 True。
网上大牛的回答:因为运行方式不同造成的,这是Cpython在compile time时做的优化。

相关文章

网友评论

      本文标题:python- is 和 ==的区别

      本文链接:https://www.haomeiwen.com/subject/spebfktx.html