Python != 演算と "is not" 質問する

Python != 演算と

コメントでこの質問、私は使用を推奨する声明を見ました

result is not None

result != None

違いは何でしょうか? また、一方が他方よりも推奨される理由は何でしょうか?

ベストアンサー1

==は等価性テストです。右側と左側が等しいオブジェクトであるかどうかを(それぞれの__eq__または__cmp__メソッドに従って)チェックします。

is同一性テストです。右側と左側がまったく同じオブジェクトであるかどうかをチェックします。メソッド呼び出しは行われず、オブジェクトは操作に影響を与えることはできませんis

のようなシングルトンには、 のふりをする可能性のあるオブジェクトを気にしない、または と比較したときにオブジェクトが壊れないように保護する必要がある場合に、is(および)を使用します。is notNoneNoneNone

おすすめ記事