count = 0 while 1: val = yield count if val is not None: print(f"val is {val}") count = val else: count += 1 s1 = send_val() print(next(s1)) print(next(s1)) print(s1.send(0)) print(next(s1))
时间: 2024-04-07 13:29:13 浏览: 75
这段代码定义了一个生成器函数 `send_val()`,它包含一个无限循环 `while 1`,在循环中,通过 `yield` 语句返回计数器 `count`。当调用方使用 `send()` 方法向生成器发送一个值时,该值将被存储在变量 `val` 中,并根据该值更新计数器 `count`。如果发送的值为 `None`,则 `count` 被增加1。如果发送的值不为 `None`,则打印该值,并将 `count` 设置为该值。该程序的输出是:0、1、0、1。
阅读全文
相关推荐


















