您当前的位置:首页 > 计算机 > 编程开发 > Python

Python生成器对象send()方法用法

时间:12-25来源:作者:点击数:

关于生成器基本用法请参考详解Python生成器函数和生成器对象的原理和用法

>>> def f():

    yield from 'abcdefg'     #使用yield表达式创建生成器

   

>>> x = f()

>>> next(x)

'a'

>>> next(x)

'b'

>>> for item in x:  #输出x中的剩余元素

    print(item, end=' ')

   

c d e f g

>>> def gen():

    yield 1

    yield 2

    yield 3

   

>>> x, y, z = gen()   #生成器对象支持序列解包

生成器对象还支持使用send()方法传入新值,从而改变后续生成的数据,这时要对yield表达式稍微改写一下。

>>> def gen(start, end):

    i = start

    while i < end:

        v = (yield i)

        if v:

            i = v

        else:

            i += 1

           

>>> g = gen(1, 101)

>>> next(g)

1

>>> g.__next__()

2

>>> g.send(9)  #传入新值,改变后续生成的数据

9

>>> next(g)

10

方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门