Pythonでパスワードを生成する関数を作成する
inty98-admin
inty98
PythonのID関数に関して記載します。
Pythonのオブジェクトが持っている識別値を取得するための関数です。
id関数の戻り値はint型で取得したIDを使うことで同一のオブジェクトかどうかを判断できます。
listなど一部の型では、別のオブジェクトでも中の値が同一であれば==で比較した場合にTrueになるものがあります。
そのため、同一のオブジェクトであるか判断するにはid関数で取得した値を比較する必要があります。
使い方は簡単で引数に取得したいオブジェクトを渡します。
帰ってきた値がそのオブジェクトが持つ一意のIDになります。
a = 1
id = id(a)
# 結果: 4355861088
print(id)
# 結果: <class 'int'>
print(type(id))
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))