python

PythonのID関数の使い方

inty98-admin

はじめに

PythonのID関数に関して記載します。

環境

  • Python: 3.13

ID関数とは?

Pythonのオブジェクトが持っている識別値を取得するための関数です。
id関数の戻り値はint型で取得したIDを使うことで同一のオブジェクトかどうかを判断できます。
listなど一部の型では、別のオブジェクトでも中の値が同一であれば==で比較した場合にTrueになるものがあります。
そのため、同一のオブジェクトであるか判断するにはid関数で取得した値を比較する必要があります。

ID関数の使い方

使い方は簡単で引数に取得したいオブジェクトを渡します。
帰ってきた値がそのオブジェクトが持つ一意のIDになります。

a = 1
id = id(a)

# 結果: 4355861088
print(id)

# 結果: <class 'int'>
print(type(id))

list型の場合

list_1 = [1, 2, 3]
list_2 = [1, 2, 3]

# 結果: True
print(list_1 == list_2)

# 結果: False
print(id(list_1) == id(list_2))

クラスの場合

class IDTestClass:
    def __init__(self, a: int) -> None:
        self.a = a


class_1 = IDTestClass(a=1)
class_2 = IDTestClass(a=1)

# 結果: False
print(class_1 == class_2)

# 結果: False
print(id(class_1) == id(class_2))

データクラスの場合

from dataclasses import dataclass


@dataclass
class IDTestDataClass:
    a: int


dataclass_1 = IDTestDataClass(a=1)
dataclass_2 = IDTestDataClass(a=1)

# 結果: True
print(dataclass_1 == dataclass_2)

# 結果: False
print(id(dataclass_1) == id(dataclass_2))

参考サイト

ABOUT ME
金ノコ
金ノコ
プロフィールの画像は現在検討中です。 金色のキノコというと某ゲームのきのこが頭に浮かんでしまうので、どうしようか..と思っている次第です。
記事URLをコピーしました