Return VS Yield en Python: un cómic corto

Y este problema se agrava cuantos más datos manejamos. ¿Qué pasa si hay 1000 personas en la fila?
La palabra clave 'retorno'
def add10(x):
return x
x = add10(4) # x = 14
def get_takoballs(orders):
output = []
for order in orders:
output.append(f'{order} takoballs')
return output
y = get_takoballs([4,6,8])
# y = ['4 takoballs', '6 takoballs', '8 takoballs']
La palabra clave 'rendimiento'
Al igual que la return
palabra clave, la yield
palabra clave significa la salida de una función.
Sin embargo, a diferencia de la return
palabra clave, una función puede generar yield
varias salidas. La yield
palabra clave no detiene toda la función después de ejecutarse.
def testfunction():
yield 4
yield 5
yield 6
for n in testfunction():
print(n)
# 4
# 5
# 6
def get_takoballs(orders):
for order in orders:
yield f'{order} takoballs'
for food in get_takoballs([4, 6, 8]):
print(food)
# 4 takoballs
# 6 takoballs
# 8 takoballs
Digamos que tenemos 10000 clientes en nuestro stand de tako (en lugar de solo 3).
orders = # a list containing 10000 orders
def return_stall(orders):
# process all 10000 orders first
# then output all 10000 processed orders
output = []
for order in order:
output.append(f'{order} takoballs')
return output
def yield_stall(orders):
# process 1 order, then output it
# repeat til all 10000 orders are completed
for order in orders:
yield f'{order takoballs}'
Para la yield_stall
función, cada pedido se entrega (entrega al cliente) tan pronto como se procesan. El primer tipo solo necesita esperar a que termine su pedido y solo él.
Conclusión
Si está tratando con una cantidad considerable de datos, considere usar una función generadora (una función que usa yield
) para acelerar las cosas. ¡Espero que esto haya sido claro y útil!
Algunas palabras finales
Si esta historia proporcionó valor y desea mostrar un poco de apoyo, podría:
- Aplaude 50 veces por esta historia (esto realmente me ayuda)
- Regístrese para obtener una membresía de Medium usando mi enlace ($ 5 / mes para leer historias ilimitadas de Medium)
Codificación de nivel superior
¡Gracias por ser parte de nuestra comunidad! Antes de que te vayas:
- Aplaude la historia y sigue al autor
- Ver más contenido en la publicación Level Up Coding
- Curso gratuito de entrevista de codificación ⇒ Ver curso
- Síguenos: Twitter | LinkedIn | Boletin informativo