Python アイデンティティ演算子
1. アイデンティティ演算子 (Identity Operators)
アイデンティティ演算子は、オブジェクト(Objects)を比較するために使用されます。
この演算子は、それらが「等しい」かどうかではなく、実際には同じオブジェクトであり、同じメモリ上の位置(Memory Location)を共有しているかを判定します。
2. is 演算子
is 演算子は、両方の変数(Variables)が「同じオブジェクト」を指している場合に True を返します。
単に値(Value)が同じであるかどうかをチェックする == 演算子とは異なる点に注意してください。
例:x と y が同じオブジェクトであるかを確認する
x = ["リンゴ", "バナナ"]
y = ["リンゴ", "バナナ"]
z = x
print(x is z)
# z は x と同じオブジェクトであるため、True を返します
print(x is y)
# x と y の内容は同じですが、オブジェクトとしては別物であるため、False を返します
print(x == y)
# 値自体は等しいため、== の場合は True を返します3. is not 演算子
is not 演算子は、両方の変数が「同じオブジェクトではない」場合に True を返します。
例:x と y が同じオブジェクトではないかを確認する
x = ["リンゴ", "バナナ"]
y = ["リンゴ", "バナナ"]
z = x
print(x is not z)
# z は x と同じオブジェクトであるため、False を返します
print(x is not y)
# x と y は同じオブジェクトではないため、True を返します
print(x != y)
# 内容(値)は等しいため、!= の場合は False を返します実務においては、None 値の判定(if x is None:)などでアイデンティティ演算子が頻繁に使用されます。値が似ているだけの別オブジェクトを誤って同一視しないよう、この挙動を正しく理解しておくことが、バグの少ないクリーンなコード作成に繋がります。