python中generation生成器中的send()方法的理解

 在函数内部使用yield定义,这个函数就是一个生成器函数。

调用生成器函数的时候会返回一个生成器对象。

生成器函数内部,使用yield可以产生数据。

生成器对象内还有一个方法send,send方法可以由外部向内部进行传值。

 

执行过程:

当执行gen=MyGenerator()会直接生成返回一个生成器对象gen

当第一次执行next函数的时候,遇到yield 1,就返回1,停止执行。因此print(1)打印。

当执行gen.send的时候进入到生成器中,执行yield 1的下一步,赋值操作value = ,这个时候把send送进来的值‘i am value’赋值给value=‘i am value’

接着执行yield value,这个时候返回value值‘i am value’,停止执行。因此打印print(‘i am value’)

 

posted @ 2020-06-18 15:41  一日学一日功  阅读(456)  评论(0编辑  收藏  举报