Python: オブジェクトのIDを調べる id()

オブジェクトのID表示

PythonでオブジェクトのIDを調べたい場合は、 id()関数を使用します。

id(オブジェクト)

ID番号はオブジェクトごとに振られ、 値は整数値です。

a = 100
b = 20

print(id(a)) # 140706965663216

print(id(b)) # 140706965660656

ID番号が同じになるケース

変数に別の変数を代入する場合は、 参照先が同じになるのでID番号も同じになります。

次のコードでは、変数aと変数bのID番号は同じです。

a = 100
b = a

print(id(a)) # 140706965663216

print(id(b)) # 140706965663216

変更不可の文字列型の値を変更した場合

Pythonでは文字列型はイミュータブル(変更不可)です。 ですが次のように「s = "a"」「s = "b"」とうように変更できます。

s = "a"
s = "b"

変更不可のはずなのに、変更できてしまう...。
これは値を変更するたびに別のオブジェクトIDが割り当てられているからです。

s = "a"

print(id(s)) # 2113170107568

s = "b"

print(id(s)) # 2113170091888

上のコードからわかるように、 変数名は一緒でも別のオブジェクトになっています。