python进阶05:生成器

xiaoxiao2021-02-28  37

廖雪峰教程中的定义:在Python中,这种一边循环一边计算的机制,称为生成器(Generator)

具体见下例:

#coding=utf-8 ''' Created on 2018年5月2日 @author: BH Wong ''' ''' 概念性知识: 1.b = (x for x in range(10)) 2.yield 关键字 --生成器。每次执行到yield 处停止,返回yield后的值。 3.send 传递值给生成器,和next类似,但是他执行的时候相当于把 yield x 替换成你send("xxx")的内容。具体例子见test02() 流程: 知识点: 1.next(b) 和b.__next__()等价 2.第一次调用不能调用send 要用next(),如果实在要用send(),需要使用send(None),send(None) == next() ''' def test(): a,b = 0,1 for i in range(5): yield b a,b = b,a+b print('---3---') def test02(): a = 0 for x in range(5): temp = yield a print(temp) a = a + 1 if __name__ == '__main__': demo = test02() print(next(demo)) print(demo.send("哈哈")) print(next(demo))

例子中主要介绍了yield关键字的使用,send的使用等。程序头中已经详细描述。

转载请注明原文地址: https://www.6miu.com/read-2624905.html

最新回复(0)