私はPython以外の言語で仕事をしていまして、趣味でPythonを勉強しています。実装中に「Null」オブジェクトの操作をしているときにエラーが発生しました。
どうやら、Pythonでは、Nullは存在しないそうな。。。
その代わりに「None」を使うそうです。
この記事では、PythonのNull(None)の判定方法について説明していきたいと思います。
対象レベル
Pythonの環境設定が整っており、Pythonの基本構文が理解出来ること。
詳しくは「【Python入門】〜初級編〜環境構築・基本構文まとめ」にまとめてあります。興味のある方はご覧ください。
サンプルソースを読むうえで理解しておきたいこと
基本的にこの章の内容は読み飛ばしてOKです。サンプルソースでわからないところがあれば参照してみてください。
ダメな例(Nullを使った場合)
はじめに、今回発生したエラーケースについて説明していきたいと思います。
下のサンプルソースでは、変数に「Null」を設定して4行目のif文でNullかどうか判定しています。この条件だと5行目に分岐しそうな気がします。
実際に動かしてみた結果が以下になります。「NameError」が出ていますね、「Null」なんて定義されていませんよというエラーですね。
どうやら、PythonではNullは使えないようで、「Null」は未設定の変数として扱われてしまったみたいです。これを避けるためには、「None」を使います。
NameError: name 'Null' is not defined

正しい判定方法(Noneを使いましょう)
ここで、正しい判定方法について説明します。PythonでのNull相当のオブジェクトはNoneを使いましょう。
以下のサンプルソースでは、2行目で「a」という変数に「None」を設定しています。そして、4行目で「is None」でデータ型の判定を行っています。ちなみに4行目でイコールイコールできいても( 「a == None」 )でも正しく動きましたがPythonで判定するときは「is」を使うのが一般的らしいです。
if オブジェクト is None:Noneの場合の処理
ソースの説明に戻ります。想定通りに動けば、5行目の処理に入り、「None」と出力される想定です。それでは、動かしてみます。
スポンサーリンク
「None」と表示されましたね。

まとめ
PythonでのNull相当のオブジェクトは「None」を使う
「None」を判定するには「オブジェクト is None」で聞く