python.yield
时间: 2023-10-29 14:54:06 浏览: 186
python-yield用法详解.pdf
Python中的`yield`是用于定义生成器函数的关键字。生成器函数在执行过程中可以暂停和恢复,它返回一个迭代器(iterator),用于在每次迭代中产生一个值。
当函数中包含`yield`关键字时,函数将变为一个生成器函数。当生成器函数被调用时,它并不立即执行,而是返回一个生成器对象。通过调用生成器对象的`__next__()`方法,可以一次获取生成器函数中`yield`语句产生的值。每次调用`__next__()`方法时,生成器函数都会从上一次暂停的位置继续执行,直到遇到下一个`yield`语句或函数结束。
以下是一个简单的例子,展示了`yield`的用法:
```python
def my_generator():
yield 1
yield 2
yield 3
gen = my_generator()
print(gen.__next__()) # 输出: 1
print(gen.__next__()) # 输出: 2
print(gen.__next__()) # 输出: 3
```
在这个例子中,`my_generator()`是一个生成器函数,通过使用`yield`关键字,它在每次调用`__next__()`方法时产生一个值。输出结果依次为1、2、3。
需要注意的是,在生成器函数中,一旦遇到`yield`语句,函数会暂停,并返回一个值。下次调用`__next__()`方法时,生成器函数会从上一次暂停的位置继续执行。最终,当函数中没有更多的`yield`语句或函数结束时,迭代器将引发`StopIteration`异常,标志着迭代的结束。
阅读全文