Pythonのid()関数の復号化プロセス

WBOY
リリース: 2016-06-16 08:46:57
オリジナル
1075 人が閲覧しました

>>> a = 2.5
>>> b = 2.5
>>> c = b
>>> a は c
False

>>> a = 2
>>> b = 2
>>> c = b
>>> a is c
True

今日、is関数を使ったときに、aとbをそれぞれ出力しました。値が 2.5 と 2 の場合、
>>> a = 2
>>> b = 2
>>> id(a)
21132060
であることがわかります。 >>> id( b)
21132060
>>> a = 2.5
>>> b = 2.5
>>> id(a)
19622112
>>> id (b)
29321464

a と b が 2 の場合、id は同じですが、2.5 の場合、この状況は文字列、つまり a の場合にも発生します。が非常に短い場合、b には非常に短い値が割り当てられ、その ID 値は同じですが、長い文字列ではありません。
の後には、インタープリタは小さな int と短い文字列を解釈するという単純な結論が得られます。少し最適化を行い、同じ ID を持つようにオブジェクトを 1 つだけ割り当てました。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!