Python中的双等号与is的区别

97 投票
1 回答
94972 浏览
提问于 2025-04-17 16:39

我在Python解释器中运行了以下代码:

>>> foo = 10
>>> dir(foo) == dir(10)
True
>>> dir(foo) is dir(10)
False
>>> 

这是为什么呢?

1 个回答

165

is 用来检查两个参数是否指向同一个对象,而 == 则用来检查两个参数的值是否相同。dir() 会返回一个 list,这个列表包含了 foo10 的相同数据,但这两个东西的实际 list 实例是不同的。

撰写回答