我不認爲這是重複的,因爲我詢問is
與==
在的具體情況的比較類型,但請讓我知道,我會刪除該問題。當比較類型/類時,使用'is'運算符而不是'=='運算符是否「安全」?
我知道is
運營商蟒蛇真的轉化爲id(type(a))==id(<type>)
;但到目前爲止,我發現type(a) is <type>
似乎給出了可預見的結果。我的問題是,將使用is
運營商曾經產生了意想不到的結果(即類似'foo' is str
回到False
)?或者根本蟒蛇店type
班可預見的位置,使is
總會產生相同的結果作爲==
?在這種情況下,我發現is
更具可讀性。
請注意這種情況是如果我是不處理遺傳類/子類(在這種情況下isinstance
將是合適的)。
不要以爲is'的'作爲'id'比較。如果「a」和「b」是同一個對象,則「a is b」的計算結果爲「True」。如果這就是你想要的,請繼續使用它。 – user2357112
尤其是,內存位置完全不相關。在除CPython以外的Python實現中,它們甚至可能在表達式中間改變(儘管'id'值不會)。 – user2357112
@ user2357112對不起,我聽說過多個stackoverflow線程中的解釋;我想只在有限的情況下,這些操作是等同的。 –