用python创建了一个生成器:
def foo3():
for i in range(1,8):
print('第',i,"步")
yield i*2
gen =foo3()
print(gen.next())
运行后却报错了:

原因是在python 3.x中 generator(有yield关键字的函数则会被识别为generator函数)中的next变为__next__了,next是python 3.x以前版本中的方法
改成如下:
gen =foo3()
print(gen.__next__())
就有输出结果了。
本文详细解析了Python生成器中next方法的变化,特别是在Python3.x版本中,next方法已被__next__所替代。通过一个具体示例,展示了如何正确使用__next__方法来获取生成器的下一个值。
1379

被折叠的 条评论
为什么被折叠?



