¿Cuál es la diferencia entre rendimiento y rendimiento en python?


Respuesta 1:

rendimiento

  • Una declaración de rendimiento en una función hace que la función sea una función generadora, que puede usarse en un bucle. Cuando se ejecuta la función y se ejecuta el rendimiento, el valor después de que el rendimiento se devuelve al bucle que lo llamó. La próxima vez que el ciclo se repita, la función comienza inmediatamente después de las declaraciones de rendimiento. Por ejemplo, este bucle (líneas 6 a 7) imprime los valores 1 a 3
def func ():
rendimiento 1
rendimiento 2
rendimiento 3

para num en func ():
print (num)

El bucle que invoca la función se completará cuando se complete la función, ya sea que cumpla el final de la función o una declaración de retorno.

Cualquier nuevo bucle que use la misma función generadora ejecutará la función desde el inicio nuevamente.

Regreso

  • Una declaración de retorno se utiliza para detener la ejecución de una función y, opcionalmente, devolver un valor al llamante. Una función que tiene un retorno (pero no un rendimiento) no se puede utilizar en un bucle (en contraste con lo anterior). Si una función que se ejecutó anteriormente se llama nuevamente, la función comienza a ejecutarse desde el principio (a diferencia del rendimiento anterior).

Ambos en una función

No hay reglas contra el uso de rendimiento y retorno en la función, pero en ese caso la función funcionará como una función generadora; es decir, funciona como si se invocara desde un bucle. Si la función alcanza el retorno, el ciclo de llamada saldrá y se ignorará cualquier valor de retorno.


Respuesta 2:

Imagina que una función sea una habitación. Ahora imagine que ingresó a esa habitación e incrementó un contador que se había inicializado a 0. El valor del contador es actualmente 1. Ahora sale de la habitación a la posición desde donde había ingresado a la habitación (digamos, su principal) . Si se le pide que regrese a la habitación, el valor del contador dependerá de cómo haya salido de la habitación. ¿Había regresado de la habitación o cedido?

  • Si había regresado de la habitación, el valor del contador será 0. Si se ha rendido de la habitación, el valor del contador será 1.

return básicamente sale de una función con un valor y los valores locales dentro se destruyen.

el rendimiento es una especie de salida de la función, pero recuerda el estado en el que salió. Si ahora haces un siguiente desde tu página principal, comenzarás desde el punto de donde te has rendido.

def func1 ():
  a = 0
  mientras cierto:
  a + = 1
devolver un

def func2 ():
a = 0
mientras cierto:
a + = 1
producir un

f1 = func1 ()
f2 = func2 ()
para i en rango (5):
  returnval = f1
  rendimiento = siguiente (f2)

Aquí, returnval siempre devolverá 1. Por otro lado, el intervalo de rendimiento oscilará entre 1 y 5.

¿Por qué usarías un rendimiento ... siguiente palabra clave?

Este conjunto de palabras clave se utilizan para crear una función generadora. Imagine que func1 y func2 le devuelven una lista de 10,000 objetos. 10.000 objetos ocupan esa cantidad de memoria y puede haber situaciones en las que realmente no se requieren 10.000 objetos que se mantengan simultáneamente en la memoria (una línea del archivo que se procesa secuencialmente).

En esos casos, puede generar un valor para que solo tenga un único objeto en la memoria.

Una forma más ordenada de usar una función de generador (en lugar de la siguiente) sería:

def func3 ():
para i en rango (5):
rendimiento i

para f en func3 ():
imprimir (f)

Esto imprimirá valores de 0 a 4.