Soy un gran admirador de Python's for...else syntax - es sorprendente la frecuencia con la que es aplicable y con qué eficacia puede simplificar el código.Usando para ... else en generadores Python
Sin embargo, no he encontrado una buena manera de utilizarlo en un generador, por ejemplo:
def iterate(i):
for value in i:
yield value
else:
print 'i is empty'
En el ejemplo anterior, me gustaría que la declaración print
para ser ejecutado sólo si i
esta vacio. Sin embargo, como else
solo respeta break
y return
, siempre se ejecuta, independientemente de la longitud de i
.
Si es imposible usar for...else
de esta manera, ¿cuál es el mejor enfoque para que la declaración print
se ejecute únicamente cuando no se produce nada?
El retorno está implícito al final de un generador. No es necesario incluirlo. – recursive
Estaba pensando eso, pero pensé que lo dejaría explícito aquí. – Triptych
+1: la "impresión i está vacía" es el problema de otra persona, no el del generador. –