Python の Null チェック
スポンサードリンク
Python の NoneType
Java などでは戻り値が空だった時、
str != null
のようにして Null チェックを行います。
一方で静的型付け言語である Python は、戻り値を受け取る時にも型を指定しないので、ある関数を呼んで戻りの値が空だった時は NoneType という型を返します。
NoneType どうかの判定方法
前述のどのデータ型であっても、以下のやりかたで None であるかどうかの判定をすることができます。
if obj is None: print("None")
Python のコード規約的には if obj == None: とは書かず、None 判定には is を使うようです。
型はあるけど値が入ってない、の判定方法
NoneType 型ではないけれど、値が入ってないということもあります。
str の "" をはじめとして、整数の0、浮動小数の 0.0、bool の False、あらゆるコレクション型(リスト、タプル、ディクショナリ、セット)の中身が空、などなど。
例えばコレクションだと、他の言語だと list の length をとってそれが 0 以上かどうか... みたいなことをすると思うのですが、Python はシンプル。
if になんの演算子もつけなければ、その変数に何かしらの値が入っているときに True 、そうじゃないときに Falseを戻します。
if obj: print ("Not null")
この省略形、はじめは気持ち悪いけど、コードも短くなり結構合理的。
否定バージョン。
if not obj: print ("Null")