Pythonでは、None
は特殊な値で、変数が何も値を持っていないことを表します。これは他のプログラミング言語のnull
に相当します。
Noneの判定
Pythonで変数がNone
であるかどうかを判定するには、is
演算子を使います。以下にその使用例を示します。
x = None
y = "Sample string"
# 変数がNoneであるならTrue、NoneではないならFalse
print(x is None) # True
print(y is None) # False
# is notを使うことで、判定のBool型は逆になる
print(x is not None) # False
print(y is not None) # True
Noneとは?
None
はPythonで『値がないこと』を表す特殊な値です。None
は、特別な型NoneType
の1つのオブジェクトであり、None
を代入する変数は、実際には何も格納していません。特に、関数が値を返さない場合や、変数を初期化する場合などに使われます。
なぜ==
ではなくis
を使うのか?
None
の判定をする場合に、is
演算子ではなく、==
演算子を使っても、同じことができるように思えます。しかし、None
の判定には必ずis
演算子を使うようにしましょう。その理由は、Pythonにおけるオブジェクトの同一性と同値性が関係しています。
同一性とは二つのオブジェクトが全く同じであること、同値性とは二つのオブジェクトの値が同じであることを表します。is
演算子による同一性のチェックは、オブジェクトが全く同じもの(同じメモリ上のアドレス)であるかを判定します。Pythonにおいて、None
はシングルトン(プログラムの実行中に、ただ一つしか存在しないオブジェクト)なので、is
演算子による同一性のチェックをすると、比較したオブジェクトがNone
であるかどうかを確実に判定できます。これが、None
の判定にはis
を使わなければいけない理由です。
以上、PythonのNone
とその扱い方について解説しました。この知識を活用して、Pythonプログラミングをより効率的に行いましょう。