我不是在问Python什么时候使用==
vs is
,这个问题之前已被多次询问和回答过。
如上所述here,==
检查两个参数是否具有相同的值,is
检查它们是否引用同一个对象。
因此,如果创建两个具有相同值的对象,
>>> fruit_name = 'Apple'
>>> company_name = 'Apple'
我们希望==
返回True
,is
返回False
。然而,实际情况就是这样:
>>> fruit_name == company_name # True expected since they have the same value
True
>>> fruit_name is company_name
True
为什么Python将fruit_name
和company_name
视为同一个对象而不是具有相同值的不同对象?当且仅当程序员故意将参数设置为同一对象时,才能依赖is
返回True?