アンパック演算子と論理演算子の優先順序
論理演算子のほうが優先される
f(**None or {})はf(**{})として処理される
code:which_first.py
def f(a="spam", b=42):
print(f"{a=}, {b=}")
load_options1 = {"a": "egg"}
assert bool(load_options1) is True
f(**load_options1) # a='egg', b=42
load_options2 = None
assert bool(load_options2) is False
f(**load_options2 or {}) # a='spam', b=42
https://github.com/Uberi/speech_recognition/pull/625/files#diff-05b49447fc792d1af2ab730a86adb2d295112d6df5f60951b995ae46cb41a96eR1691 で知った