yield return2
时间: 2024-10-02 08:02:52 浏览: 30
C#中yield return用法分析
在编程,特别是与生成器(Generator)相关的上下文中,`yield return`是一个关键字用于创建Python的迭代器。当函数中包含`yield`表达式时,这个函数就不再是普通函数,而是变成了一个生成器。当`yield return`语句被执行时,它会暂停函数的执行并返回一个值给调用者,同时保存当前的状态。下次调用生成器的`next()`方法时,程序会从上一次暂停的地方继续执行,直到遇到下一个`yield`。
举个例子:
```python
def generate_numbers(n):
i = 0
while i < n:
value = yield i
if value is not None: # 如果外部调用了send()方法传入了值
i = value
else:
i += 1
gen = generate_numbers(5)
print(next(gen)) # 输出 0
print(gen.send(3)) # 输出 3,函数从上次暂停的位置继续执行
```
在这个例子中,`generate_numbers`是一个生成器,`yield return i`相当于一个"暂停并返回当前值"的操作。当外部调用`send(3)`时,实际的返回值就是`3`。
阅读全文