当前位置:  开发笔记 > 编程语言 > 正文

为什么Python 2.6添加了一个全局的next()函数?

如何解决《为什么Python2.6添加了一个全局的next()函数?》经验,为你挑选了2个好方法。

我注意到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?



1> 小智..:

这只是为了与像这样的功能保持一致len().我相信内部的next(i)电话i.__next__().

见http://www.python.org/dev/peps/pep-3114/



2> Manuel Ceron..:

请注意,在Python 3.0+中,该next方法已重命名为__next__.这是因为一致性.next是一种特殊方法,特殊方法按惯例命名(PEP 8),带有双前导和尾随下划线.特殊方法并不是直接调用的,这就是next引入内置函数的原因.

推荐阅读
大大炮
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有