Devuelve múltiples valores en el tiempo

Bien, entonces, ¿hay una manera de devolver un valor desde una función, la forma en que lo hace el return , pero no la detiene , la forma en que lo hace el return ?

Necesito esto para poder seguir devolviendo valores de vez en cuando. (Retrasos proporcionados por time.sleep() o lo que sea.)

Creo que buscas yield . Ejemplo:

 import time def myFunction(limit): for i in range(0,limit): time.sleep(2) yield i*i for x in myFunction(100): print( x ) 
 def f(): for i in range(10): yield i g = f().next # this is if you actually want to get a function # and then call it repeatedly to get different values print g() print g() print # this is how you might normally use a generator for i in f(): print i 

Salida:

 0 1 0 1 ... 9