Python の Null 比較: 優先オプションは「is」または「==」ですか?
Python で値を比較する場合、次の 2 つがあります。使用できる演算子は「==」と「is」です。どちらも等しいかどうかをチェックするために使用できますが、特別な値 None を扱うときは異なる動作をするため、混乱が生じたり、エディターの警告が表示される可能性があります。
Null 比較の「==」と「is」について
「==」演算子は、2 つのオブジェクトの値を比較して等しいかどうかをテストします。一方、「is」は同一性を検査し、2 つのオブジェクトがメモリ内の同じオブジェクトであるかどうかをチェックします。
None と比較した場合の警告を回避する
ほとんどのコード エディターは次のことを行います。 「==」を使用して変数を None と比較すると、警告が発行されます。これは、一般に、None 値をチェックするときに「is」を使用する方が良いと考えられているためです。
Null 比較に「is」が優先される理由
"is"いくつかの理由で、
例: 違いを説明する
次のカスタム クラスを考えてみましょう:
class Negator: def __eq__(self, other): return not other
このクラスからオブジェクトをインスタンス化し、それを比較するとなし:
thing = Negator() print(thing == None) # True print(thing is None) # False
クラスが等価演算子をオーバーライドするため、「==」が True を返すことがわかります。ただし、オブジェクトは None と同じではないため、「is」は正しく False を返します。
結論
Python で値を None と比較する場合、通常、「is」は次のようになります。優先される演算子。 「==」よりも明示的、効率的、信頼性が高くなります。これらの演算子の違いを理解することで、潜在的なエディターの警告を回避しながら、より正確で効率的なコードを作成できます。
以上がPython で何も比較するのに「is」または「==」は正しい方法ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。