Python id関数の使い方【オブジェクトIDの取得方法】

Python
この記事は約4分で読めます。

こんにちは、ナナです。

Pythonは「オブジェクト指向言語」と呼ばれるプログラミング言語であり、あらゆる情報を「オブジェクト」という単位で管理しています。

オブジェクトには「オブジェクトID」という識別子が与えられて管理されています。PythonにおけるオブジェクトIDを取得するための「id関数」の使い方を学びましょう。

本記事では次の疑問点を解消する内容となっています。

本記事で学習できること
  • 「オブジェクトID」とは何か?
  • id関数の仕様
  • id関数にオブジェクトを指定したプログラム例
  • id関数に変数を指定したプログラム例

では、「id関数」と「オブジェクトID」について学んでいきましょう。

スポンサー

オブジェクトに付与される「オブジェクトID」とは?

「オブジェクト」にはオブジェクト同士を判別するための「オブジェクトID」と呼ばれる識別子が紐づいており、一意に特定できる仕組みになっています。

Pythonのオブジェクト

Pythonでは「数」「文字列」「リスト」「タプル」といったあらゆる情報が「オブジェクト」として管理されています。

つまり、次のような情報は全て「オブジェクト」として管理されています。

10              # 整数値
3.14            # 浮動小数点数
"Hello"         # 文字列
[10, 20, 30]    # リスト
(40, 50, 60)    # タプル
オブジェクトの種類

これらの「オブジェクト」に対して「オブジェクトID」が1つ紐づきます。

ナナ
ナナ

Pythonの情報は『オブジェクト』で管理される。これが基本です。

スポンサー

id関数を使ったプログラム例

『オブジェクトID』は、「id関数」を使うことで取得することができます。

id関数の仕様

関数仕様id(object)
引数1オブジェクト
戻り値int型:オブジェクトを識別するID
ナナ
ナナ

引数にオブジェクトを指定すると『オブジェクトID』が戻り値で取得できます。シンプルな関数ですね。

id関数の引数にオブジェクトを指定してみよう!

まずは、id関数の引数にオブジェクトを指定するケースを解説します。

print(id(10))
print(id(3.14))
print(id("Hello"))
print(id([10, 20, 30]))
print(id((40, 50, 60)))

実行結果は次のように、オブジェクト毎に異なる『オブジェクトID』が付与されているのがわかりますね。

140720290641008
2705538589368
2705548071856
2705547616776
2705551508824
オブジェクトに紐づいたID
ナナ
ナナ

オブジェクト毎にユニークな『オブジェクトID』が付与されます。このIDでオブジェクトを識別できるんです。

id関数の引数に変数を指定してみよう!

続いて、id関数の引数には『変数』を指定することも可能です。

# 変数にオブジェクトの参照を設定
num1 = 10
num2 = 3.14
moji = "Hello"
list1 = (10, 20, 30)

# オブジェクトIDを表示
print(id(10))
print(id(num1))

print(id(3.14))
print(id(num2))

print(id("Hello"))
print(id(moji))

print(id((10, 20, 30)))
print(id(list1))
140719496017008
140719496017008
2446875796152
2446875796152
2446880040864
2446880040864
2446879999320
2446879999320

オブジェクトを指定した場合も、変数を指定した場合も同様のオブジェクトIDが表示されましたね。

このようにid関数に『変数』を指定した場合は、変数が参照しているオブジェクトIDが取得できます。

ナナ
ナナ

オブジェクトIDを考察すると、変数がいったい何を参照しているかを解析することができます。

Python よく使う機能解説まとめ

スポンサー
Python機能解説
スポンサー
モノづくりC言語塾