Pythonでは、Noneの判定にif notif is Noneのどちらを使用するべきかは、しばしば混乱の元となります。この記事では、それぞれの違いと適切な使用法について解説します。

Noneとは

まず、PythonにおけるNoneとは、「値が存在しない状態」のことを表す組み込み定数です。他のプログラミング言語ではデータが存在しない場合は「null」という語句を使うこともあります。

Noneの判定方法

Pythonにおける処理のときには、Noneオブジェクトを使うとエラーが生じる場合もあります。そのために、処理を行う前にNoneかどうかを確認する必要が生じてきます。Noneを確認するためには、if文とis演算子を使います。

if オブジェクト is None:
    # Noneだった場合の処理
else:
    # Noneでない場合の処理

isと==の違い

Pythonでは、==はオブジェクトの値同士が同じであるか(同値性)を比較し、isはオブジェクト自体が同じものであるか(同一性)を比較します。Noneかどうかを判定したい場合は、判定の厳密性や処理速度の面からisの使用が推奨されます。

まとめ

PythonでNoneの判定を行う際は、if notif is Noneのどちらを使用するべきかは、その目的によります。Noneのようなシングルトンと比較をする場合は、常にisis notを使うべきです。また、本当はif x is not Noneと書いているつもりで、if xと書いている場合は注意してください。

投稿者 admin

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です