在无限生成器中重置变量可以通过使用send()
方法来实现。无限生成器是一种特殊的生成器,它可以无限地生成值,而不是在生成完一定数量的值后停止。当我们需要在生成器中重置变量时,可以通过在生成器中使用send()
方法发送一个特殊的值来实现。
下面是一个示例代码,演示了如何在无限生成器中重置变量:
def infinite_generator():
count = 0
while True:
reset = yield count
if reset:
count = 0
else:
count += 1
# 创建无限生成器
generator = infinite_generator()
# 生成值并打印
print(next(generator)) # 输出: 0
print(next(generator)) # 输出: 1
print(next(generator)) # 输出: 2
# 重置变量并生成值
print(generator.send(True)) # 输出: 0
print(next(generator)) # 输出: 1
print(next(generator)) # 输出: 2
在上面的示例中,infinite_generator()
是一个无限生成器函数,它使用一个变量count
来记录生成的值的数量。当调用send(True)
时,生成器会接收到一个True
的值,然后将count
重置为0。接下来,再次调用next(generator)
时,生成器会从0开始重新生成值。
需要注意的是,第一次调用生成器时,应使用next(generator)
而不是generator.send()
,因为在调用send()
之前,生成器还没有启动。
这种方法可以在无限生成器中灵活地重置变量,以满足不同的需求。
领取专属 10元无门槛券
手把手带您无忧上云