generator函數
时间: 2023-09-16 18:15:11 浏览: 81
generator 函数是一种特殊类型的函数,它可以暂停和恢复其执行状态,从而允许在需要时生成一系列的值。与普通函数不同,generator 函数使用关键字 `yield` 来产生一个值,并且每次调用 `yield` 时会暂停函数的执行,保存当前的状态。然后,当下一次调用该 generator 函数时,它会从上一次暂停的地方恢复执行,并继续生成下一个值。
下面是一个简单的例子,展示了如何使用 generator 函数生成一系列的数字:
```python
def number_generator(n):
i = 0
while i < n:
yield i
i += 1
# 调用 generator 函数会返回一个 generator 对象
my_generator = number_generator(5)
# 使用 next() 函数逐个获取生成的值
print(next(my_generator)) # 输出: 0
print(next(my_generator)) # 输出: 1
print(next(my_generator)) # 输出: 2
print(next(my_generator)) # 输出: 3
print(next(my_generator)) # 输出: 4
```
在上述代码中,`number_generator` 是一个 generator 函数,它接受一个参数 `n`,并使用 `yield` 语句生成从 0 到 `n-1` 的数字。通过调用 `next()` 函数来逐个获取生成的值。每次调用 `next()` 函数时,generator 函数都会从上一次暂停的地方继续执行,并生成下一个值。
需要注意的是,当 generator 函数执行完毕后再次调用 `next()` 函数会触发 `StopIteration` 异常,表示已经没有更多的值可供生成。
阅读全文