NancyForever

关于Python中的yield

二、生成器(constructor)

生成器函数在Python中与迭代器协议的概念联系在一起。简而言之,包含yield语句的函数会被特地编译成生成器。当函数被调用时,他们返回一个生成器对象,这个对象支持迭代器接口。函数也许会有个return语句,但它的作用是用来yield产生值的。

不像一般的函数会生成值后退出,生成器函数在生成值后会自动挂起并暂停他们的执行和状态,他的本地变量将保存状态信息,这些信息在函数恢复时将再度有效

def g(n):
 
for i inrange(n):
     yield i **2

for i in g(5):
print i,":",

0 : 1 : 4 : 9 : 16 :

posted on 2017-05-08 17:45  NancyForever  阅读(286)  评论(0编辑  收藏  举报

导航