or演算子を使った、ちょっと便利なショートカット
Pythonのちょっとした小ネタ。
if not a: a = []
これは変数aを評価した時にFalseになる0, False, None, [], {}, ()だった場合、空のリストを代入するもので、ちょこちょこ出てきます。
上記の式は、実は
a = a or []
と同値です。見た目にスッキリするだけでなく、より直感的に分かりやすいものになっています。
なぜこのようなことができるかと言うと、Pythonにおける``or``演算子はTrueかFalseを返すものではなく、オブジェクトそのものを返すという性質を持つためです。そして、左右ともFalseの場合は右のやつが返されます。
なので、
>>> {} or [] # 両方Falseだから右のやつが返される [] >>> [] or {} {} >>> 1 or False # 当然Trueのものがあればそれが返される 1 >>> False or 1 1
となります。
知ってると、ちょっと便利なショートカットですね。