我注意到Python2.6在它的全局函数列表中添加了next().
next(iterator[, default])
Retrieve the next item from the iterator by calling its next() method.如果
default
给定,则在迭代器耗尽时返回,否则StopIteration
引发.
添加这个的动机是什么?你能做什么next(iterator)
,你不能做什么iterator.next()
和一个except
条款来处理StopIteration?
这只是为了与像这样的功能保持一致len()
.我相信内部的next(i)
电话i.__next__()
.
见http://www.python.org/dev/peps/pep-3114/
请注意,在Python 3.0+中,该next
方法已重命名为__next__
.这是因为一致性.next
是一种特殊方法,特殊方法按惯例命名(PEP 8),带有双前导和尾随下划线.特殊方法并不是直接调用的,这就是next
引入内置函数的原因.