que tienden a utilizar mucho en esto, pero es feo:mejor manera de hacer la asignación condicional en Python
a = (lambda x: x if x else y)(get_something())
Así que escribí esta función:
def either(val, alt):
if val:
return val
else:
return alt
lo que puede hacer:
a = either(get_something(), y)
¿Hay una función incorporada para esto (similar a ISNULL en T-SQL)?
Gracias. Ja, en realidad estaba intentando eso, pero lo descarté al probar 'a = 0 o Ninguno' y la consola no imprimió nada. Pero intentar 'a es ninguno' después de eso da 'Verdadero', además de que quiero la funcionalidad 'Ninguno o 0' de todos modos (llegando tarde) :) Por cierto, gracias por la respuesta rápida. – crizCraig
Solo para el registro, si va a encadenar el operador 'y', evaluará el argumento de la derecha que convierta a True si todos los argumentos o el argumento de la izquierda que convierte a False si alguno se convierte en False. –
"a = 0 o None" Bueno, por supuesto, la consola no imprimirá nada, está asignando el resultado de '0 o None' a' a', y las variables con 'None' asignadas a ellas no se muestran automáticamente 'Ninguno' cuando se muestra en la consola. Tienes que usar específicamente 'repr',' str', o 'print'. O algo así. – JAB