En este artículo, cubriremos la palabra clave de rendimiento Python . Antes de comenzar, comprendamos la definición de palabra clave de rendimiento.
¿Qué hace la palabra clave yield?
Yield es una palabra clave en Python que se usa para regresar de una función sin destruir los estados de su variable local y cuando se llama a la función, la ejecución comienza desde la última declaración de rendimiento. Cualquier función que contenga una palabra clave de rendimiento se denomina generador. Por lo tanto, el rendimiento es lo que hace un generador. La palabra clave yield en Python es menos conocida pero tiene una mayor utilidad. veremos el ejemplo de yield python.
Diferencia entre retorno y rendimiento python
La palabra clave Yield en Python es similar a una declaración de devolución utilizada para devolver valores en Python que devuelve un objeto generador al que llama a la función que contiene el rendimiento, en lugar de simplemente devolver un valor. La principal diferencia entre ellos es: La declaración de retorno de Python de rendimiento que detiene la ejecución de la función. Mientras que la declaración de rendimiento solo detiene la ejecución de la función. Otra diferencia es que las declaraciones de retorno nunca se ejecutan. mientras que las declaraciones de rendimiento se ejecutan cuando la función reanuda su ejecución.
Ventajas del rendimiento:
- Dado que almacena los estados de las variables locales, se controla la sobrecarga de la asignación de memoria.
- Dado que se conserva el estado anterior, el flujo no comienza desde el principio y, por lo tanto, ahorra tiempo.
Desventajas del rendimiento:
- A veces, el uso de yield se vuelve erróneo si la llamada de la función no se maneja correctamente.
- La optimización del tiempo y la memoria tiene un costo de complejidad del código y, por lo tanto, a veces es difícil entender la lógica detrás de él.
Ejemplo 1:
Demostrando rendimiento trabajando con la ayuda de una lista .
Python3
# Python3 code to demonstrate # yield keyword # generator to print even numbers def print_even(test_list): for i in test_list: if i % 2 == 0: yield i # initializing list test_list = [1, 4, 5, 6, 7] # printing initial list print("The original list is : " + str(test_list)) # printing even numbers print("The even numbers in list are : ", end=" ") for j in print_even(test_list): print(j, end=" ")
Producción:
The original list is : [1, 4, 5, 6, 7] The even numbers in list are : 4 6
Ejemplo 2:
En este ejemplo, obtenemos un cuadrado de un número entre 1 y 100 usando el bucle .
Python3
# A Python program to generate squares from 1 # to 100 using yield and therefore generator # An infinite generator function that prints # next square number. It starts with 1 def nextSquare(): i = 1 # An Infinite loop to generate squares while True: yield i*i # Next execution resumes from this point i += 1 # Driver Code for num in nextSquare(): if num > 100: break print(num)
Producción:
1 4 9 16 25 36 49 64 81 100
Ejemplo 3:
La posible aplicación práctica es que cuando se maneja la última cantidad de datos y se buscan detalles a partir de ellos, se puede usar el rendimiento, ya que no es necesario volver a buscar desde el principio y, por lo tanto, se ahorraría tiempo. Posiblemente puede haber muchas aplicaciones de rendimiento dependiendo de los casos de uso.
Python3
# Python3 code to demonstrate yield keyword # Checking number of occurrence of # geeks in string # generator to print even numbers def print_even(test_string): for i in test_string: if i == "geeks": yield i # initializing string test_string = " The are many geeks around you, \ geeks are known for teaching other geeks" # printing even numbers using yield count = 0 print("The number of geeks in string is : ", end="") test_string = test_string.split() for j in print_even(test_string): count = count + 1 print(count)
Producción:
The number of geeks in string is : 3
Publicación traducida automáticamente
Artículo escrito por manjeet_04 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA