导读 大家好!今天来聊聊Python中`yield`关键字的一个有趣特性——` send()`方法。如果你对生成器(generator)稍有了解,一定知道`yield`可以暂
大家好!今天来聊聊Python中`yield`关键字的一个有趣特性——`.send()`方法。如果你对生成器(generator)稍有了解,一定知道`yield`可以暂停函数并返回值,而`.send()`则能向生成器传入数据!💡
比如,定义一个简单的生成器:
```python
def counter():
print("First send value:")
x = yield 1
print(f"Got {x}")
y = yield x + 1
print(f"Got {y}")
```
运行时:
```python
f = counter()
next(f) 启动生成器
f.send(3) 发送3,并继续执行到下一个yield
输出:
First send value:
Got 3
4
```
注意事项👇:
1️⃣ `.send(None)`等价于`next(generator)`,但不能用`None`作为首次调用。
2️⃣ 如果生成器暂停在`yield`处,传入的数据会赋值给`yield`左侧的变量。
3️⃣ 如果生成器抛出异常,`.send()`也会被中断。
掌握它,你的代码将更灵活强大!🌟
Python Generator Yield Send
版权声明:本文由用户上传,如有侵权请联系删除!