我有一个是这样的发电机功能:如何立即运行生成器函数的初始化代码,而不是在第一次调用?
def mygenerator():
next_value = compute_first_value() # Costly operation
while next_value != terminating_value:
yield next_value
next_value = compute_next_value()
我想初始化步骤(while循环之前)尽快函数被调用运行,而不是只当发电机是第一用过的。什么是这样做的好方法?
我想这样做,因为生成器将运行在一个单独的线程(或进程,或任何多处理使用),我将不会使用返回一会儿,初始化有点昂贵,所以我希望它在我准备好使用这些值时进行初始化。
这是“正确”的方法。其他人都是黑客。他们创作和使用可能很有趣,写得比较短,但难以阅读和介意难以维系。 – jsbueno 2011-04-20 03:54:01