python函数式编程之yield表达式形式
先来看一个例子 def foo(): print("starting...") while True: res = yield print("res:",res) g = foo() next(g) 在上面的例子里,因为foo函数中有yield关键字,所以foo()函数的执行结果g是一个生成器,此时可以使用next(g)或者g.__next__()方法触发生成器的执行 程序的执行结果为 starting... 使用next(g)触发生成器的执行时,程序会按照正常的顺序从上向下执行,遇到yield,程序就会暂停 并把yield后面所接的值返回 打印next(g)的执行结果 def foo(): print("starting...") while True: res = yield print("res:",res) g = foo() print(next(g)) 程序执行结果 starting... None 在上面的例子里,执行一次next(g)方法,程序暂停在yield那一行,此时再次调用next(g),程序会从yield语句那一行继续向下运行 修改上面的代码,多调用几次next...