ホームページ  >  記事  >  バックエンド開発  >  Pythonのid()関数の復号化プロセス

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

WBOY
WBOYオリジナル
2016-06-16 08:46:571070ブラウズ

>>> 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 つだけ割り当てました。

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