我正在尝试实现一个可以生成无限数字的自然数生成器,我的代码:
def nature():
s = 0
while True:
yield s
s += 1
Run Code Online (Sandbox Code Playgroud)
当我使用时next(nature()),我得到一个0的序列,为什么这个?以及如何解决它?
>>> next(nature())
0
>>> next(nature())
0
>>> next(nature())
0
>>> next(nature())
0
Run Code Online (Sandbox Code Playgroud)
每次打电话给nature()你,都会创建一个新的发电机.而是这样做:
n = nature()
next(n)
next(n)
next(n)
Run Code Online (Sandbox Code Playgroud)