【Python】一篇文章读懂yield基本用法
# 定义一个简单的生成器函数,它使用yield返回列表中的数字
def create_numbers():
for i in range(3):
yield i
# 使用生成器
numbers_gen = create_numbers()
# 打印生成器中的值
print(next(numbers_gen)) # 输出: 0
print(next(numbers_gen)) # 输出: 1
print(next(numbers_gen)) # 输出: 2
# 再次调用next会抛出StopIteration异常,表示生成器中的元素已经全部产出
# print(next(numbers_gen)) # 会抛出异常
# 正确处理异常的方式
try:
print(next(numbers_gen)) # 不会输出任何内容,因为没有更多的元素
except StopIteration:
print("生成器中的元素已全部产出")
这段代码定义了一个简单的生成器函数create_numbers
,它使用yield
关键字在每次迭代时返回一个数字。我们创建了这个生成器的一个实例,并通过next()
函数来获取生成器中的元素。当所有元素都被获取后,再次调用next()
会抛出StopIteration
异常,表示生成器已经到达了它的末端。代码示例中也展示了如何正确处理这个异常。
评论已关闭