日記

日々のことと、Python/Django/PHP/Laravel/nodejs などソフトウェア開発のことを書き綴ります

nullな値について

ファイル操作の前に書くことがあった。
Pythonの null値は Noneという型で扱われています。
Javaだと面倒な nullチェックなどが、若干楽に書けるようになっています。

none_data = None

if none_data:
  print u'Noneだと条件に当てはまらない'

if not none_data:
  print u'こちらは条件に当てはまる'

こんなコードになるので、 == nullのような比較式が不要です。
ただ、これはこれで問題があって、boolean型も同じ評価式でTrue/Falseを判別するので、混ざりすぎると何をチェックするべきなのか分からなくなってしまいます。これを回避するために、次のような書き方もできます。

if none_data is None:
  print u'Noneだと当てはまる'

if not none_data is None:
  print u'Noneは当てはまらない'

これだと評価対象が Noneであるかのチェックだけができ、True/Falseは当てはまらなくなります。
意外と分からないうちはハマるので注意が必要です。