mygenerator().next() AttributeError: 'generator' object has no attribute 'next'

def mygenerator():
    print ("start ...")
    yield 5

mygenerator()
print ("mygenerator():",mygenerator())
mygenerator().next()

我定义了带有yield的函数,调用是报错:

mygenerator().next()
AttributeError: 'generator' object has no attribute 'next'

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

解决方法:把next()换为:_ _next_ _()

 

# -*- coding:utf-8 -*-
def mygenerator():
    print ("start ...")
    yield 5


print ("mygenerator():",mygenerator())
mygenerator().__next__()

 

mygenerator(): <generator object mygenerator at 0x0000000002324728>
start

 

posted @ 2017-12-11 15:57  热爱技术的小牛  阅读(772)  评论(0编辑  收藏  举报
热爱技术的小牛