# Python生成器示例代码
def simple_generator():
"""这是一个简单的生成器函数,它会生成三个数字"""
yield 1
yield 2
yield 3
# 创建生成器对象
gen = simple_generator()
# 使用for循环遍历生成器
print("使用for循环遍历生成器:")
for value in gen:
print(value)
# 重新创建生成器对象,因为生成器只能遍历一次
gen = simple_generator()
# 使用next()函数手动获取生成器的下一个值
print("\n使用next()函数手动获取生成器的下一个值:")
print(next(gen)) # 输出: 1
print(next(gen)) # 输出: 2
print(next(gen)) # 输出: 3
# 尝试再次调用next()将引发StopIteration异常,因为生成器已经没有更多值了
try:
print(next(gen))
except StopIteration:
print("生成器已经没有更多值了")
# 生成器表达式
print("\n生成器表达式:")
gen_expr = (x * x for x in range(5))
for value in gen_expr:
print(value)
simple_generator()
是一个生成器函数,使用 yield
关键字来生成值。每次调用 next()
或者在 for
循环中迭代时,生成器会暂停并返回一个值。next()
函数:用于手动获取生成器的下一个值。当生成器没有更多值时,调用 next()
会引发 StopIteration
异常。()
而不是方括号 []
,生成器表达式可以在不预先计算所有值的情况下生成值。希望这个示例能帮助你理解 Python 生成器的工作原理!
下一篇:python deque
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站