Pythonは奇妙な現象であります

【Pythonの3.7.0】

パイソンは、ID値が等しい二つのオブジェクトで比較され、比較は、2つの同一のメモリアドレスにインスタンスオブジェクトポイントオブジェクトも同じです。

実際の使用では、私が見つけた、それは時々少し奇妙です。

対話モードでPythonの:

それはいくつかの整数で、値がTrueであるいくつかが偽であることがわかった、これがなぜですか?新しいIntegerオブジェクトは、最終的にはどのではないでしょうか?

測定プログラムを書くにはPyのファイル:

 

 

 

 

 

-5 256に新たなオブジェクトとの間に見出さは整数ではありません。

パフォーマンスの最適化のために、整数オブジェクトのために、いくつかのPythonの整数頻繁に使用されるオブジェクト[-5-256]キャッシュされたが、Pythonのライフサイクル全体の中でsmall_intsと呼ばれるリストに保存され、これらを参照する必要は整数オブジェクト場所は、新しいオブジェクトが、オブジェクト・キャッシュへの直接の参照を再作成されていません。

しかし、PYファイル:

 

これは、これはそれの真であるか、本当に不思議ですか?これは、新しい対象にならないのでしょうか?

その後、試しに機能的に:

 

 

コードのブロックとして機能する場合は、まとめることができます。

同じブロックには:

タイプに対して不変は、数値、文字列、ブール値、タプル、共有変数のオブジェクトの複数などのオブジェクト。これらの変数は、メモリアドレスの同じ部分を指します。このようなリストと彼の同類として変数の型は、辞書オブジェクトの新しいセットを作成します。


異なるコードブロックの間:
デジタル・オブジェクト他の整数が新しく追加された[-5-256]外;
;特別なオブジェクトを持つ新しい文字列
タプルのリストは、新しいオブジェクトのコレクションです。

これは、間接的に整数定数オブジェクト[-5-256]私が見て、上記のコードのその部分の正当性を証明します。

この時点で、私はこのようなものは、白はナンセンスであると言って、単に法律ではありません、ある法則を発見しました。ねえ、この研究への私の時間の無駄、良いガスああ~~

 

おすすめ

転載: www.cnblogs.com/wangyi0419/p/12501598.html