Por ejemplo:python expresión booleana no "cortocircuito"?
def foo():
print 'foo'
return 1
if any([f() for f in [foo]*3]):
print 'bar'
pensé que el código anterior es la Salida:
foo
bar
en lugar de:
foo
foo
foo
bar
¿Por qué? ¿Cómo puedo hacer el efecto de "cortocircuito"?
Respuesta corta: La lista de comprensión '[f() for f in [foo] * 3]' se ejecuta y crea una lista de valores de retorno 'f()' ** antes ** 'any()' tiene una posibilidad para evaluarlos (y cortocircuito). – martineau
Duplicado. Por favor busca –