Python标准库是否提供可递增的计数器实现?
Python标准库中的替代方案:模拟
i++的计数器 Python标准库里确实有能满足你需求的工具——itertools.count,它正好实现了“返回当前值后立即自增”的逻辑,和其他语言里的i++行为一致,完全可以替代你自定义的Counter类。
直接使用itertools.count的示例
from itertools import count # 初始化从0开始的计数器 counter = count(start=0) # 每次调用next()获取当前值,计数器自动自增 print(next(counter)) # 输出: 0 print(next(counter)) # 输出: 1 print(next(counter)) # 输出: 2
若需要和自定义类一致的consume方法形式
如果你偏好通过调用方法来获取值,也可以用itertools.count简单包装一层,避免自己实现完整的计数器逻辑:
from itertools import count class Counter: def __init__(self, start=0): self._inner_counter = count(start) def consume(self): return next(self._inner_counter) # 使用方式和你自定义的类完全一致 counter = Counter(0) print(counter.consume()) # 输出: 0 print(counter.consume()) # 输出: 1
不过多数场景下,直接调用next()操作itertools.count实例已经足够简洁,没必要额外包装。
内容的提问来源于stack exchange,提问作者Alexander Soare
相关产品推荐
相关产品推荐

