首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在python中,keyword: is和==有什么不同

在python中,keyword: is和==有什么不同
EN

Stack Overflow用户
提问于 2012-03-16 15:07:46
回答 6查看 358关注 0票数 3

根据python风格指南,python关键字is应该用来代替==操作符。

然而,它们并不总是做与这里所示完全相同的事情。为什么?实际的区别是什么,正确的用法是什么?

代码语言:javascript
复制
import unittest

class testIS(unittest.TestCase):
    def test_is(self):
        self.assertEqual(1,1)

if __name__ == '__main__':
    unittest.main()

这是可行的..。但是下面的不是……

代码语言:javascript
复制
import unittest

class testIS(unittest.TestCase):
    def test_is(self):
        self.assertEqual(1,1)

if __name__ is '__main__':
    unittest.main()
EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2012-03-16 15:11:29

如果两个变量指向同一个对象,则is将返回True;如果这两个变量引用的对象相等,则返回==

代码语言:javascript
复制
>>> a = [1, 2, 3]
>>> b = a
>>> b is a 
True
>>> b == a
True
>>> b = a[:]
>>> b is a
False
>>> b == a
True
票数 5
EN

Stack Overflow用户

发布于 2012-03-16 15:12:23

==测试是否相等。两个不相同的对象可以相等。

is测试身份,即两者是否引用同一对象。

票数 7
EN

Stack Overflow用户

发布于 2012-03-16 17:25:17

代码语言:javascript
复制
if money_in_wallet is money_that_was_in_wallet(two_weeks_ago):
    print("I still live with my parents and have no income or expenses")
elif money_in_wallet == money_that_was_in_wallet(two_weeks_ago):
    print("Good, my budget is exactly balanced")
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9733257

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档