這可能是一個愚蠢的問題,但究竟什麼是is
功能,當一個人會使用它嗎?Python:什麼是`is`功能?
從上下文中,我想我可以推斷它相當於==
;但如果是這樣的話,爲什麼都有呢?該Built-in Functions Reference顯示什麼,以及help(is)
返回SyntaxError
。
這可能是一個愚蠢的問題,但究竟什麼是is
功能,當一個人會使用它嗎?Python:什麼是`is`功能?
從上下文中,我想我可以推斷它相當於==
;但如果是這樣的話,爲什麼都有呢?該Built-in Functions Reference顯示什麼,以及help(is)
返回SyntaxError
。
is
檢查對象是否具有相同的身份。 ==
只檢查它們是否相等。
>>> L1 = [1,2,3]
>>> L2 = [1,2,3]
>>> L1 is L2
False
>>> L1 == L2
True
你知道這裏的參考嗎?我認爲它不在內置函數中。 –
換句話說,'L1是L2' <=>'id(L1)== id(L2)' –
另外請注意,根據PEP 8,與'None'比較時應該使用'is'。 –
'x是y'當且僅當'x'和'y'持有同一個對象。 – Elazar
不是'x == y'是同一件事嗎?爲什麼都有? –
不,因爲您可以有兩個具有相同值的對象,但它們不會是*相同的*對象。假設你和我住在同一個公寓大樓裏。我們的公寓可能在各方面都完全相同('my_apartment == your_apartment'),但它們是兩個不同的地方('my_apartment不是your_apartment')。 –