rendimiento de Python

Funciones y métodos de Python




Cómo utilizar la palabra clave de rendimiento de Python

Los generadores no son el concepto más intuitivo en Python . Para empeorar las cosas, utilizan una palabra clave especial llamada & ldquo; rendimiento & rdquo; aunque los generadores son en sí mismos funciones. ¿Qué es la palabra clave de rendimiento? ¿Cómo se compara con una declaración de devolución?

Esas son buenas preguntas. En esta guía, hablamos sobre qué es la declaración de rendimiento y cómo puede usarla en su código. Analizamos un ejemplo de la palabra clave de rendimiento en acción. ¡Empecemos!

Recomendamos leer nuestros artículos sobre iteradores de Python y generadores antes de continuar. Esto le brinda un contexto útil que puede utilizar para comprender mejor la palabra clave yield.




Volver a lo básico: iteradores y generadores

Las listas se describen como objetos iterables. Esto se debe a que puede ver su contenido usando un & ldquo; para & rdquo; círculo. Cada vez que se ejecuta el ciclo, Python accede a un elemento de la lista. Los diccionarios, tuplas y cadenas también son objetos iterables.

Una función que accede a un elemento desde un objeto iterable se denomina iterador . Creemos una lista e iteremos sobre ella usando un bucle for :

 peppers = [" Scotch Bonnet "," Piri Piri "," Cayenne "] para p en pimientos: print (p) para p en pimientos: print (p) 

Este código imprime todos los pimientos en la etiqueta & ldquo; pimientos & rdquo; list a la consola:

 Scotch Bonnet Piri Piri Cayenne Scotch Bonnet Piri Piri Cayenne 

Usamos nuestro iterador tantas veces como queramos. En el último ejemplo, iteramos sobre los & ldquo; pimientos & rdquo; objeto dos veces.

Los generadores de Python son como un iterador utilizado para repetir un objeto. Hay una gran diferencia: solo puede iterar sobre un generador una vez. Mientras que podemos iterar sobre & ldquo; pimientos & rdquo; tantas veces como queramos, solo se accede a un generador una vez.

El 81% de los participantes afirmaron que se sentían más seguros sobre sus perspectivas laborales después de asistir a un bootcamp. Asóciese a un bootcamp hoy mismo.

El graduado promedio de un bootcamp pasó menos de seis meses en la transición profesional, desde comenzar un bootcamp hasta encontrar su primer trabajo.

Definamos un generador para nuestra lista de pimientos:

 def print_peppers (pimientos): para p en pimientos: rendimiento p pimientos = [ "Scotch Bonnet", "Piri Piri", "Cayenne"] pepper_generator = print_peppers (pimientos) para p en pepper_generator: print (p) 

Definimos una función llamada print_peppers ( ) . Esta es nuestra función del generador. Acepta un argumento: una lista de pimientos que queremos imprimir en la consola.

En nuestro programa principal, llamamos a la función print_peppers () y la asignamos a la variable pepper_generator. A continuación, iteramos sobre el generador usando un & ldquo; for & rdquo; círculo. Nuestro bucle for llama al objeto generador y lo itera.

Ejecutemos nuestro código:

 Scotch Bonnet Piri Piri Cayenne 

La salida es la misma que en nuestro primer ejemplo. La diferencia es que solo podemos iterar sobre nuestra lista una vez. Intentemos iterar sobre nuestro generador nuevamente:

 ... para p en pepper_generator: print (p ) para p en pepper_generator: print (p) 

Nuestro código devuelve:

 Scotch Bonnet Piri Piri Cayenne 

Hemos iterado sobre nuestro generador una vez. No podemos volver a hacerlo. Es por eso que nuestro segundo ciclo for no devuelve ningún valor.

Observe la palabra & ldquo; rendimiento & rdquo; en el último ejemplo. He aquí un recordatorio:

 def print_peppers (pimientos): para p en pimientos: rendimiento p 

El & ldquo; rendimiento & rdquo; La palabra clave aparece dentro de nuestra función. Devuelve un valor en una función generadora. Es similar a & ldquo; return & rdquo; palabra clave .

Utilice rendimiento cuando desee crear un generador sobre el que pueda iterar. En nuestro último ejemplo, usamos rendimiento para crear un generador para nuestra lista de pimientos.

Cualquier función que contenga rendimiento devolverá un generador. Vemos esto al verificar el tipo de la variable pepper_generator usando el método type () :

 & lt; class 'generator' & gt; 

Esto nos dice que pepper_generator, que tiene asignada la función print_peppers, es un generador.





Conclusión

La palabra clave yield devuelve un valor dentro de un generador. Un generador es un tipo especial de iterador cuyos valores solo se pueden iterar una vez. La palabra clave yield es similar a una declaración return, excepto que las declaraciones return no se pueden usar en generadores.

¡Ahora está listo para usar la palabra clave yield como un Pythonista!





rendimiento de Python: StackOverflow Questions

Tutorials