Pitón

Rendimiento de Python

Rendimiento de Python

El rendimiento es una palabra clave incorporada de Python que devuelve los valores de una función. La ejecución de la función no se termina. Más bien, devuelve el valor a la persona que llama y mantiene el estado de ejecución de la función. La ejecución de la función se reanuda desde la última declaración de rendimiento. El rendimiento nos permite producir una secuencia de valores en lugar de un valor. Se utiliza dentro de un cuerpo funcional. La función que contiene una declaración de rendimiento se conoce como función generadora.

Existen varias ventajas para generar palabras clave. Por ejemplo, controla la asignación de memoria y guarda el estado de la variable local. Sin embargo, aumenta la complejidad del código.

Este artículo explica el uso de la palabra clave yield con ejemplos.

Sintaxis de rendimiento

La sintaxis de rendimiento es simple y directa. El rendimiento se inicia con la palabra clave yield y la sintaxis de la siguiente manera:

valor de rendimiento

Ejemplos de

Ahora, veamos ejemplos para comprender el uso y el funcionamiento de las declaraciones de rendimiento. Tradicionalmente, la palabra clave return termina la ejecución del programa y devuelve un valor al final, mientras que yield devuelve la secuencia de valores. No almacena el valor en la memoria y devuelve el valor a la persona que llama en tiempo de ejecución. En el siguiente ejemplo, se define una función de generador para determinar el año bisiesto. Un salto es ese año cuando divisible por cuatro devuelve cero como resto. La palabra clave yield devuelve el valor del año bisiesto a la persona que llama. Como obtendrá el valor del año bisiesto, pausará la ejecución del programa, devolverá el valor y luego reanudará la ejecución desde donde se detuvo.

#declaración de un generador para determinar el año bisiesto
def leapfunc (mi_lista):
para yo en mi_lista:
si (i% 4 == 0):
#utilizando rendimiento
rendimiento i
#declarando la lista de años
year_list = [2010,2011,2012,2016,2020,2024]
print ("Impresión de los valores de los años bisiestos")
para x en leapfunc (lista_año):
imprimir (x)

Producción

La salida muestra la serie de años bisiestos.

Veamos otro ejemplo donde la función del generador produce varios números y cadenas.

# declarando una función generadora
def myfunc ():
ceder "Mark"
ceder "John"
ceder "Taylor"
ceder "Ivan"
rendimiento 10
rendimiento 20
rendimiento 30
rendimiento 40
rendimiento 50
# llamar e iterar a través de la función del generador
para yo en myfunc ():
#impresión de valores
imprimir (i)

Producción

Implementemos una función generadora para calcular e imprimir el valor del cubo de la secuencia de números. Estamos generando los valores del cubo de 1 a 30.

#declarar una función generadora para calcular el valor del cubo
def calcube ():
val = 1
#el bucle infinito while
mientras que es verdadero:
#cubo de cálculo
rendimiento val * val * val
#aumentar el valor en 1
val = val + 1
print ("Los valores del cubo son:")
# llamar a la función del generador
para yo en calcube ():
si yo> 30:
rotura
imprimir (i)

Producción

La salida muestra el valor del cubo menor que 30.

Conclusión

Yield es una palabra clave incorporada de Python que no finaliza la ejecución del programa y genera una serie de valores. En comparación con la palabra clave return, la palabra clave yield produce múltiples valores y regresa a la persona que llama. Este artículo explica el rendimiento de Python con ejemplos.

Batalla por Wesnoth 1.13.6 Desarrollo liberado
Batalla por Wesnoth 1.13.6 lanzado el mes pasado, es el sexto lanzamiento de desarrollo en el 1.13.x y ofrece una serie de mejoras, sobre todo en la i...
Cómo instalar League Of Legends en Ubuntu 14.04
Si eres fanático de League of Legends, esta es una oportunidad para que pruebes League of Legends. Tenga en cuenta que LOL es compatible con PlayOnLin...
Instale el último juego de estrategia de OpenRA en Ubuntu Linux
OpenRA es un motor de juego de estrategia en tiempo real libre / gratuito que recrea los primeros juegos de Westwood como el clásico Command & Conquer...