python 生成器-send方法

 1 # _*_coding:utf-8_*_
 2 '''
 3 如何发送信号终止生成器呢?  ======> send方法
 4 '''
 5 def demo(n):
 6     count = 0
 7     while count < n:
 8         print("count: ",count)
 9         count += 1
10         sign = yield count
11         print("sign: ",sign)
12         if sign == "stop":
13             break
14         # print("sign....",sign)
15     return "异常值"
16 
17 g = demo(3)
18 # n1 = next(g)
19 g.send(None)
20 
21 
22 
23 # 1.next方法可看成向yield发送了一个None值
24 # 2.生成器刚开始启动时,必须用send或者next方法发送None值启动,
25 """
26 def demo(n):
27     count = 0
28     while count < n:
29         print("count: ",count)
30         count += 1
31         sign = yield count
32         # print("sign: ",sign)
33         # if sign == "stop":
34         #     break
35         print("sign....",sign)
36     # return "异常值"
37 
38 g = demo(3)
39 # n1 = next(g)
40 g.send("stop")
41 g.send(None)
42 """
43 #3.next会发送None值和唤醒并执行生成器,而send可以发送其他信号到生成器内部,发送None时,会唤醒并执行生成器

 

转载于:https://www.cnblogs.com/Demo-simple/p/11139717.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值