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’)