Foros Python
Return y yield - Versión para impresión

+- Foros Python (https://foro.recursospython.com)
+-- Foro: Desarrollo (https://foro.recursospython.com/forumdisplay.php?fid=1)
+--- Foro: General (https://foro.recursospython.com/forumdisplay.php?fid=9)
+--- Tema: Return y yield (/showthread.php?tid=191)



Return y yield - Sergiolocuelo - 24-08-2018

¿Alguien podría explicarme de manera sencilla return y yield? Gracias


RE: Return y yield - konniskatt - 24-08-2018

(24-08-2018, 03:01 PM)Sergiolocuelo escribió: ¿Alguien podría explicarme de manera sencilla return y yield? Gracias

A simple vista, return y yield hacen lo mismo, retornar valores.
Pero la diferencia entre yield y return, es que yield no detiene la función, al contrario que hace return.
Esto puede ser útiles para los generadores.
Ej: generar números aleatorios.

Código:
  1. def drawbox():  # generate random objects
  2.    for xi in range(2, 54):
  3.        x.append(xi)
  4.        for yi in range(2, 24):
  5.            y.append(yi)
  6.            random.seed(time.time())
  7.            epochext = time.time()
  8.  
  9.            xrand = random.choice(x)
  10.            yrand = random.choice(y)
  11.  
  12.            yield xrand, yrand
El código anterior genera coordenas aleatorias, usando yield. Si usara return, la función detendría su ejecución y retornaría un solo valor.
Saludos
PD: El código GeShi del foro se bugeo y coloca ; envés de espacios