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

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

2013-04-26 17:32 639 查看
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__()

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