在Python内置库中是否有类似的东西:
class Counter:
def __init__(self, start=0):
self.val = start
def consume(self):
val = self.val
self.val += 1
return val
我认为这是实现需要使用计数器然后在下一行立即增加的代码的更安全的方式。有点像在其他语言中使用i++
。但是,如果有一个内置方法,我尽量避免用这样的定义堵塞我的库。
你基本上重新实现了itertools.count
,用consume
代替__next__
。(__next__
通常不直接调用,而是通过将count
的实例传递给next
函数。)
>>> from itertools import count
>>> c = count()
>>> next(c)
0
>>> next(c)
1
>>> next(c)
2