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

原文地址:https://www.cnblogs.com/my-blogs-for-everone/p/8023503.html