Pythonには、他のプログラミング言語に存在する「null-coalescing」または「null-aware」演算子と同等の機能が提案されています。これらの演算子は、null参照に関連する一般的なパターンのシンタックスシュガーを提供します。
具体的には、以下の3つのNone-aware演算子が提案されています:
- None coalescing二項演算子
??
:左辺がNoneでない値を評価する場合、左辺を返し、それ以外の場合は右辺を評価して返します。 - None-aware属性アクセス演算子
?.
:左辺がNoneでない値を評価する場合、完全な式を評価します。 - None-awareインデックスアクセス演算子
?[]
:左辺がNoneでない値を評価する場合、完全な式を評価します。
しかし、現在のところ、Pythonにはこれらの演算子は実装されていません。そのため、Pythonでこれらの演算子と同等の機能を実現するためには、以下のような書き方をする必要があります:
s = None
other = s if s else "some default value"
この書き方では、s
がNoneの場合に限り、"some default value"
がother
に代入されます。しかし、この書き方ではs
を2回書く必要があり、より短い書き方が求められています。
以上が、PythonのNull安全演算子についての概要です。Pythonの進化にご期待ください。