生成器 - python

来源:互联网 发布:中小企业网络拓扑图 编辑:程序博客网 时间:2024/05/18 14:11

生成器简介

带有yield关键字的的函数在 Python 中被称之为generator|生成器,yield的作用能返回一个值并且暂停函数执行。

延迟计算|惰性求值

只有在用到某个元素才会将其放入内存,这之前或之后,元素可以不存在或者被销毁。这一特点实现了协同程序的思想。

协同程序

其为一个独立的函数调用,可以被暂停或者挂起(yielde),同时可以获得一个值,之后还能重挂起的地方继续或重新开始。

比如:

def counter(start_at = 0):    i = start_at    i += 1    yield i# 我们使用如下几种方法:count = counter(1)type(count)# genratorcount.next()# 6count.send(9)# 10count.close()count.next()# error
0 0