Foros Python

Versión completa: Return y yield
Actualmente estas viendo una versión simplificada de nuestro contenido. Ver la versión completa con el formato correcto.
¿Alguien podría explicarme de manera sencilla return y yield? Gracias
(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:
[code]
def drawbox():  # generate random objects
   for xi in range(2, 54):
       x.append(xi)
       for yi in range(2, 24):
           y.append(yi)
           random.seed(time.time())
           epochext = time.time()

           xrand = random.choice(x)
           yrand = random.choice(y)

           yield xrand, yrand
[/code]
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