您的位置:首页 > 移动开发 > Objective-C

python 3.x 错误 ‘generator’ object has no attribute ‘next’

2017-06-20 09:51 453 查看
用python生成斐波那契數列
def fab(max):
n,a,b=0,0,1
while n<max:
yield b
a,b=b,a+b
n=n+1

for n in fab(5):
print(n)


运行正常

当运行下面的方式时

f=fab(5)

f.next()

出现下面的错误
Traceback (most recent call last):
  File “<pyshell#32>”, line 1, in <module>
    f.next()
AttributeError: ‘generator’ object has no attribute ‘next’

原因是在python 3.x中 generator(有yield关键字的函数则会被识别为generator函数)中的next变为__next__了,next是python 3.x以前版本中的方法

修改为下面这样运行正常

f=fab(5)

f.__next__()
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  python
相关文章推荐