当您通过调用其中包含yield
关键字的函数或方法创建生成器时,您将获得一个具有next
方法的对象。
据我所知,使用此方法和使用next
内置函数之间没有区别。
e.g。 my_generator.next()
vs next(my_generator)
那有什么不同吗?如果没有,为什么有两种方法在生成器上调用next?
答案 0 :(得分:0)
在Python 2中,迭代器的内部方法是Python 3中的next()
,它是__next__()
。内置函数next()
知道这一点,并始终调用正确的方法使代码与两个版本兼容。此外,它还添加了default
参数,以便更轻松地处理迭代结束。