ホームページ >バックエンド開発 >Python チュートリアル >Python では「== None」より「is None」が好まれるのはなぜですか?
Python について なし 比較: "is" と ==
Python 開発者は、変数を比較するときに "is" と == のどちらを使用するかという問題によく遭遇します。なしへ。どちらのオプションも有効な構文になりますが、優先されるアプローチは、目的の比較によって異なります。
主な違いは、オブジェクトの性質にあります。比較: オブジェクトの同一性または同等性。
None の場合、そのようなオブジェクトは 1 つだけです。 Pythonで。したがって、my_var is None は、my_var が同じ None オブジェクトを参照しているかどうかをチェックします。
両方とも None かつ == None であるにもかかわらず、は有効な構文であり、None はより明示的であり、エラーが発生しにくいと考えられます。
次の点を考慮してください。状況:
class Negator(object): def __eq__(self, other): return not other thing = Negator() print(thing == None) # True print(thing is None) # False
この例では、Negator クラスは == 演算子をオーバーライドして、常に引数の逆を返します。結果として、thing == None は True と評価され、値が等しいことを示します。ただし、thing は None が正しく False と評価され、thing と None が同じオブジェクトではないことを示します。
との比較を含め、オブジェクトの同一性を確認する場合なし。推奨されるアプローチです。これにより明確さが確保され、オーバーライドされた等価演算子によって引き起こされる潜在的な曖昧さが防止されます。覚えておいてください。 は同一性をチェックし、== は等価性をチェックします。
以上がPython では「== None」より「is None」が好まれるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。