首页 > 科技 >

📚Python进阶:聊聊yield的send魔法✨

发布时间:2025-03-28 02:03:07来源:

大家好!今天来聊聊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

免责声明:本答案或内容为用户上传,不代表本网观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。 如遇侵权请及时联系本站删除。