在Python(2.7.9)中,itertools.count
计数器非常方便用于线程安全的计数。但是我如何获取计数器的当前值呢?
每次调用next()
时,计数器会递增并返回最后一个值:
import itertools
x = itertools.count()
print x.next() # 0
print x.next() # 1
print x.next() # 2
到目前为止,一切都很好。
我找不到一种方法来获取计数器的当前值,而不调用next()
,这将会有一个不良的副作用,即增加计数器,或使用repr()
函数。
接下来是:
print repr(x) # "count(3)"
所以你可以解析repr()
的输出。就像这样:
current_value = int(repr(x)[6:-1])
使用这个方法可以解决问题,但是它实在太丑了。
有没有更直接地获取计数器当前值的方法?
+=
有什么区别呢? - Matti Virkkunenrepr()
的值从哪里来? - Carlcount_repr()
的 C 函数中实现的。 - Aya+=
绝对不是线程安全的。https://dev59.com/tXI-5IYBdhLWcg3wtaxq - Carl