Muy a menudo tendré asignaciones como:
data = { 'a': var_a if var_a is not None else default_a, ... }Esto es algo detallado. Creo que esto se puede acortar a
data = { 'a': var_a or default_a, ... } al menos si sé que var_a no tomará un valor como 0 o [].
¿Hay alguna desventaja en usar esta notación más corta?
var_a or default_a es la forma habitual de hacerlo cuando Ninguno se trata igual que cualquier valor 'Falso' (0, [], Falso, ...).
Si necesita verificar específicamente Ninguno, puede expresarlo así:
'a': (var_a,default_a)[var_a is None] o al menos evitar el not invirtiendo el orden
'a': default_a if var_a is None else var_aSi vas a hacer esto a menudo, podrías hacer una función para acortar la expresión:
def noNone(v,d): d if v is None else v...
'a': noNone(var_a,default_a)