2012-06-10 23 views
8

Cuando hago algo así como (ejemplo totalmente al azar dont leen en los nombres de variables):Do Python ¿Las sentencias inline if ejecutan una función dos veces?

variable = read_file() if read_file() else "File was empty" 

en este caso no read_file get() excuted dos veces? Si es así, ¿hay alguna forma de hacerlo para ejecutar solo una vez pero mantenerlo dentro de una línea?

+2

Probablemente sea una mala idea hacerlo; ¿Cómo sabe el código que usa 'variable' que el archivo en realidad no contenía' "El archivo estaba vacío" '? –

+0

Nombres de variables/métodos totalmente aleatorios – NoviceCoding

Respuesta

21

En ese caso, read_file() se ejecutará dos veces. Puede hacer esto en su lugar:

variable = read_file() or "File was empty" 
+0

@NoviceCoding No hay problema: D – jamylak

Cuestiones relacionadas