何时可以使用Python中的`is`运算符来确定两个对象是否是同一个对象而不是仅具有相同的值?

时间:2017-09-21 06:56:57

标签: python string python-3.x comparison equality

我不是在问Python什么时候使用== vs is,这个问题之前已被多次询问和回答过。

如上所述here==检查两个参数是否具有相同的值,is检查它们是否引用同一个对象。

因此,如果创建两个具有相同值的对象,

>>> fruit_name = 'Apple'
>>> company_name = 'Apple'

我们希望==返回Trueis返回False。然而,实际情况就是这样:

>>> fruit_name == company_name # True expected since they have the same value
True
>>> fruit_name is company_name 
True

为什么Python将fruit_namecompany_name视为同一个对象而不是具有相同值的不同对象?当且仅当程序员故意将参数设置为同一对象时,才能依赖is返回True?

0 个答案:

没有答案