2013-06-30 119 views
-2

这可能是一个愚蠢的问题,但究竟什么是is功能,当一个人会使用它吗?Python:什么是`is`功能?

从上下文中,我想我可以推断它相当于==;但如果是这样的话,为什么都有呢?该Built-in Functions Reference显示什么,以及help(is)返回SyntaxError

+2

'x是y'当且仅当'x'和'y'持有同一个对象。 – Elazar

+0

不是'x == y'是同一件事吗?为什么都有? –

+0

不,因为您可以有两个具有相同值的对象,但它们不会是*相同的*对象。假设你和我住在同一个公寓大楼里。我们的公寓可能在各方面都完全相同('my_apartment == your_apartment'),但它们是两个不同的地方('my_apartment不是your_apartment')。 –

回答

3

is检查对象是否具有相同的身份。 ==只检查它们是否相等。

>>> L1 = [1,2,3] 
>>> L2 = [1,2,3] 
>>> L1 is L2 
False 
>>> L1 == L2 
True 
+0

你知道这里的参考吗?我认为它不在内置函数中。 –

+0

换句话说,'L1是L2' <=>'id(L1)== id(L2)' –

+2

另外请注意,根据PEP 8,与'None'比较时应该使用'is'。 –