我在Python2.6.6中使用的是itertools.cycle().next()方法,但是现在我更新到了3.2版本,我注意到itertools.cycle()对象没有next()方法。
我用它在Spinner类的spin()方法中循环一个字符串。因此,如果我们循环元组代码,它将打印:|、/、-、\、|、/、-、|、< ('|', '/', '-', '\\', '|', '/', '-') >d14等等...
我搜索了Python 3.0,3.1和3.2的发行说明,没有注意到这方面的任何变化。当这种情况发生变化的时候?有没有什么简单的替代方案可以实现和以前一样的功能?
提前谢谢你。
发布于 2011-03-09 04:04:52
在python 3中删除了iter.next()。请改用next(iter)。因此在您示例中,将itertools.cycle().next()更改为next(itertools.cycle())
有一个good example here以及其他各种移植到Python3的技巧。本文还比较了Python2.x和Python3.x中的各种其他next()习惯用法
发布于 2011-03-09 04:02:30
在Python3.x中,迭代器不再有it.next()。请使用next(it),它也适用于Python2.6或更高版本。在内部,这将在Python2.x中调用it.next(),在Python3.x中调用it.__next__()。
https://stackoverflow.com/questions/5237611
复制相似问题