【问题标题】:python 3 iterator not executing next [duplicate]python 3迭代器下一个不执行[重复]
【发布时间】:2014-12-12 08:11:21
【问题描述】:

为什么python 3 中的迭代器支持__next__ 而不是next?它不应该被直接调用,而是只能在执行时调用:

 for i in iterator:
      dosomething(i)

我有一个用例,我想致电next。例如,将itertools.count 用于递增整数流。我想做:

from itertools import count
    cnt = count(0)
    one(cnt.next())
    two(cnt.next()) 

现在我可以通过使用__next__ 来执行上述操作,这表明它不应该被外部调用?

【问题讨论】:

    标签: python itertools


    【解决方案1】:

    在 Python 3 中,使用全局函数next()

    one(next(cnt))
    

    【讨论】:

    • @khelwood 嗯,2.6+,但那些甚至没有这个的人面临的问题比他们的迭代器 fu 不向前兼容更大。
    猜你喜欢
    • 2023-03-22
    • 2015-01-01
    • 2021-12-09
    • 2019-01-12
    • 2018-11-01
    • 2015-09-20
    • 2018-09-23
    • 2022-01-09
    • 2020-01-01
    相关资源
    最近更新 更多