如何在fib_gen2中去掉全局变量?我不想在这个中使用本机生成器或类,这只是一个学术练习,尽管我对任何实现的改进都很感兴趣。def ftake(fnext, last): global a; a =r = a return r
assert [1,1,2,3,5] == ftake(fib_gen2
我尝试定义一个可以用生成器函数send(0)重置的生成器函数mycount(),如下面的示例所示。一切正常,除了当我在一个尚未启动的新生成器对象上使用send(0)时。在本例中,它提供了一个TypeError。有没有什么函数可以检查生成器是否已经启动,或者在这种情况下,我是否必须捕获TypeError并用mycount(0)创建一个新的生成器对象? while True: if v == None: else