python3 yield关键字
yield简单介绍如何改变文本的样式简单实例为什么需要生成器?实例优势
yield简单介绍
yield <==> 生成器 包含yield语句的函数是一个生成器 生成器每次产生一个值(yield语句),函数被冻结,被唤醒后再产生一个值 生成器是一个不断产生值的函数
如何改变文本的样式
强调文本 强调文本
简单实例
def
gen(n
):
for i
in range(n
):
yield i
**2
for i
in gen(5):
print(i
, ' ', end
='')
生成器每调用一次在yield位置产生一个值,直到函数执行结束.
输出 0 1 4 9 16
为什么需要生成器?
实例
def
gen(n
):
for i
in range(n
):
yield i
**2
def
square(n
):
return [j
**2 for j
in range(n
)]
for i
in gen(5):
print(i
, ' ', end
='')
print()
for i
in square(5):
print(i
, ' ', end
='')
输出结果 0 1 4 9 16 0 1 4 9 16
生成器gen(n)每次只使用一个存储单元,不断的更新; 与生成器相比square(n)函数则是把所有的数都存入列表中,等待使用; 当所需的对象很多时,如n=1M,100M或更大时,很明显生成器更加节省空间。
以上为个人理解,如有误请指正
优势
生成器相比一次列出所有内容的优势: 1.更节省存储空间 2.响应更迅速 3.使用更灵活