ホームページ >バックエンド開発 >Python チュートリアル >Python なし 比較: 'is' または ==?
変数を None と比較することは、Python の一般的な操作です。ただし、使用されている構文に矛盾があることに気づいたかもしれません。そのため、「is」を使用するか == を使用するかという問題が生じます。
一般に、変数を None と比較する場合は、「is」を使用することをお勧めします。 。その理由は、「is」はオブジェクトの同一性をチェックするのに対し、== はオブジェクトの同等性をチェックするためです。 Python では、None オブジェクトは 1 つだけであるため、「is」を使用して何かを None と比較すると、それらが同じオブジェクトであれば常に True が返されます。
一方、== はオブジェクトの同等性をチェックします。これは、2 つのオブジェクトが等しい場合、たとえ同じオブジェクトでなくても、True を返すことを意味します。たとえば、次のコードについて考えてみましょう。
class Negator(object): def __eq__(self, other): return not other thing = Negator() print(thing == None) # True print(thing is None) # False
この例では、Negator クラスは、オブジェクトが等しくない場合に True を返す eq メソッドを定義します。 == を使用して None と比較すると、カスタム eq メソッドが呼び出され、結果は True になります。ただし、is を使用して比較すると、同じオブジェクトではないことがわかり、結果は False になります。
したがって、オブジェクトが None と同一であるかどうかを厳密にチェックする場合 (つまり、無効かどうかをチェックする場合)、 「is」を使用することをお勧めします。ただし、等しいかどうかをチェックする場合 (つまり、2 つのオブジェクトが同じ値を持つかどうかをチェックする場合)、 ==.
を使用する必要があります。以上がPython なし 比較: 'is' または ==?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。