Python 速習チュートリアル

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:)などでアイデンティティ演算子が頻繁に使用されます。値が似ているだけの別オブジェクトを誤って同一視しないよう、この挙動を正しく理解しておくことが、バグの少ないクリーンなコード作成に繋がります。