ホームページ >バックエンド開発 >Python チュートリアル >Python の `==` と `is`: 同一のオブジェクトに対して異なる結果が生成されるのはどのような場合ですか?

Python の `==` と `is`: 同一のオブジェクトに対して異なる結果が生成されるのはどのような場合ですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-12-30 11:05:09696ブラウズ

Python's `==` vs. `is`: When Do They Produce Different Results for Identical Objects?

Python でのインスタンス ID とオブジェクトの比較: == と is を理解する

Python では、2 つの文字列変数に同一の値を割り当てることができますが、 「==」演算子と「is」演算子を使用して比較すると、異なる結果が生成されます。この矛盾は、インスタンスの同一性とオブジェクトの等価性の概念から生じます。

'==' はオブジェクトの等価性を評価し、2 つの変数がメモリ内の同じオブジェクトを参照しているかどうかを判断します。対照的に、「is」は同一性テストを実行し、2 つの変数がオブジェクトのまったく同じインスタンスを指しているかどうかをチェックします。

説明すると、

s1 = 'text'
s2 = 'text'

この場合、s1 と s2 の両方がメモリ内の同じ文字列オブジェクトを参照します。そのため、'==' は同じ値を持つため True を返します。

ただし、文字を連結して別の文字列 'text' を作成すると、

s3 = ''.join(['t', 'e', 'x', 't'])

s3 は同じ値を持ちますが、値が s1 および s2 である場合、それはメモリ内の別個のオブジェクトです。したがって、「is」は同じインスタンスではないため False を返します。

要約すると、「==」はオブジェクトの同等性をテストし、「is」はインスタンスの同一性をチェックします。この区別を理解することは、Python オブジェクトを正確に比較するために非常に重要です。

以上がPython の `==` と `is`: 同一のオブジェクトに対して異なる結果が生成されるのはどのような場合ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。