[Directorio]
A la generación y rendimiento
1. ¿Qué es el generador
2, ¿por qué tener un generador
3, la forma de utilizar el generador
Dos, aplicaciones de expresión rendimiento
Tres, las expresiones ternarias, lista de fórmulas, la expresión generador
3.1 que tres expresiones
3.2 Lista de Fórmula
3.3 generador de expresión
Una unidad de generación (generador) y el rendimiento
1, la palabra clave de rendimiento
Con la palabra clave de rendimiento , tenemos un auto iterador definido por la implementación .
rendimiento se puede usar para devolver valores, pero a diferencia de la devolución, la función devolverá el final del evento , y el rendimiento puede mantener una función de estado de ejecución suspender función para devolver múltiples valores
2. ¿Cuál es el generador
Si la función comprende la palabra clave de rendimiento y, a continuación llama a la función, el código no realiza la función de la misma, es decir, el objeto generador de valor de retorno obtuvo
Las castañas:
>>> def my_range (inicio, parada, paso = 1 ): ... print ( ' empezar ... ' ) ... mientras inicio < parada: ... rendimiento inicio ... comenzar + = paso ... imprimir ( ' final ... ' ) ... >>> g = my_range (0,3 ) >>> g <generador my_range objeto en 0x104105678>
Generador construido __iter__ __next__ y métodos, por lo que el generador en sí es un iterador
>>> g. __iter__ <método de envoltura ' __iter__ ' de objeto generador en 0x1037d2af0> >>> g. __next__ <método de envoltura ' __next__ ' de objeto generador en 0x1037d2af0>
Así, podemos utilizar siguiente (generador) activar la ejecución del generador de función correspondiente a:
>>> siguiente (g) # función de disparo para ejecutar hasta que se encuentra la producción se detiene, el valor de retorno de rendimiento, y la función de suspensión en la ubicación actual de inicio ... 0 >>> siguiente (g) # llamada el siguiente (g nuevo ), la función continúa desde la última posición de pausa hasta el reencuentro ... producir 1 >>> la siguiente (G) # una y otra vez ... 2 >>> la siguiente (G) # gatillo de la función no hacen rendimiento de la experiencia tirado no se devuelve ningún valor, es decir, el valor final de la iteración se ha completado final ... de trazas (resultados más recientes Última llamada): File " <stdin> " , línea 1, en <módulo> StopIteration
bucle for itera edición:
>>> para i en cuenta atrás (3 ): ... print (i) ... inicio de cuenta regresiva 3 2 1 Listo!
3, ¿por qué tener un generador
4, la forma de utilizar el generador
Dos, aplicaciones de expresión rendimiento
Tres, las expresiones ternarias, lista de fórmulas, la expresión generador
1, la expresión ternaria
2, una lista de fórmula
3, la expresión generador