python 生成器的两个作用

本文通过一个具体的代码示例,深入解析了Python中生成器与协程的工作原理,展示了如何使用send方法与yield表达式进行数据的传递与接收,帮助读者掌握这一高级特性。
def eat(name):
    print("{}该吃饭了".format(name))
    lst = []
    for i in range(1, 10000):
        x = yield lst
        lst.append(x)





g = eat('张三')   # 只是生成对象,不执行函数里面的代码
# print(g.__next__())  #第一次开始执行方法里面的代码并返回yied后面的值
print(g.send(None))
print(g.send('王二小')) #第二次执行将参数先传值给yield ,由yield将值转交给x,然后在执行相应的append操作,最后返回yield面的值。
print(g.send('王二小')) #第三次同第二次。
结果:
张三该吃饭了
[]
['王二小']
['王二小', '王二小']
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

EasternTiger

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值