ホームページ >バックエンド開発 >Python チュートリアル >Python は「is」キーワードをどのように実装しますか?
Python では「is」キーワードはどのように実装されていますか?
Python では、オブジェクトの同一性をテストするために「is」キーワードが使用されます、平等ではなく。この動作は、2 つのオブジェクトの値を比較する __eq__() メソッドとは異なります。ただし、文字列に適用すると、'is' キーワードは独特の特性を示します。
Python にインターンされる文字列は共有メモリ プールに格納されるため、同じメモリ アドレスを持ちます。その結果、インターンされた文字列と「is」を比較すると、メモリ内の同じオブジェクトであるため、True が返されます。このインターニング プロセスは通常、文字列リテラルに対して発生します。
インターニングされていない文字列を 'is' と比較すると、結果は False になります。関係のない文字列は、値が同じであっても、異なるメモリ位置を占有します。例:
<code class="python">s = "Test String" s2 = "Test String" print(s is s2) # Output: False</code>
この例では、「s」と「s2」は両方とも同じ値を持ちますが、メモリ内の同じオブジェクトではありません。したがって、「is」は False を返します。
カスタム クラスは、「is」キーワードの動作をオーバーライドできません。 __is__() をオーバーライドしても、オブジェクトと「is」を比較した結果には影響しません。 「is」キーワードは、クラス定義や定義されたメソッドに関係なく、常にオブジェクトのアイデンティティをテストします。
以上がPython は「is」キーワードをどのように実装しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。