2013-06-30 149 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'。 –