PytnonでNVL

PythonでOracleのNVLみたいな、もといNull合体演算子が使いたくて調べたメモ。

Wikipediaにも書いてあるがorを使えばそれっぽいことができる。
書いてあるように0や空文字、FalseもNoneと評価されることは注意。
>>> print(None or "hoge")
hoge
>>> print("fuga" or "hoge")
fuga
>>> print("" or "hoge")
hoge
>>> print(True or "hoge")
True
print(False or "hoge")
hoge
>>> print(1 or "hoge")
1
>>> print(0 or "hoge")
hoge
int()がNoneや空文字をキャストしようとしてエラーになるのも防げる。
>>> print(int(""))
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: invalid literal for int() with base 10: ''
>>> print(int("" or 0))
0