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言語塾