注目キーワード

【Python】Null(None)の判定方法について

私は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
sample_null_error.py実行結果

正しい判定方法(Noneを使いましょう)

ここで、正しい判定方法について説明します。PythonでのNull相当のオブジェクトはNoneを使いましょう。

以下のサンプルソースでは、2行目で「a」という変数に「None」を設定しています。そして、4行目で「is None」でデータ型の判定を行っています。ちなみに4行目でイコールイコールできいても( 「a == None」 )でも正しく動きましたがPythonで判定するときは「is」を使うのが一般的らしいです。

if オブジェクト is None:Noneの場合の処理

ソースの説明に戻ります。想定通りに動けば、5行目の処理に入り、「None」と出力される想定です。それでは、動かしてみます。

スポンサーリンク

「None」と表示されましたね。

sample_is_none.py実行結果

まとめ

PythonでのNull相当のオブジェクトは「None」を使う

「None」を判定するには「オブジェクト is None」で聞く