您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

Python itertools计数器的当前值是什么

5b51 2022/1/14 8:21:57 python 字数 2402 阅读 542 来源 www.jb51.cc/python

Python(2.7.9)中的itertools.count计数器对于线程安全计数非常方便.我怎样才能获得计数器的当前值?每次调用next()时,计数器都会递增并返回最后一个值:import itertools x = itertools.count() print x.next() # 0 print x.next() # 1 print x.next

概述

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])

会做的伎俩,但真的很难看.

有没有办法更直接地获得计数器的当前值?

根据module implementation,这是不可能的.

typedef struct {
    PyObject_HEAD
    Py_ssize_t cnt;
    PyObject *long_cnt;
    PyObject *long_step;
} countobject;

当前状态存储在cnt和long_cnt成员中,它们都没有在对象API中公开.根据您的建议,只有可以检索它的位置是object __repr__.

请注意,在解析字符串时,您必须考虑非奇异增量情况. repr(itertools.count(123,4))等于’count(123,4)’ – 在这种情况下,您所建议的逻辑将失败.

总结

以上是编程之家为你收集整理的Python itertools计数器的当前值是什么全部内容,希望文章能够帮你解决Python itertools计数器的当前值是什么所遇到的程序开发问题。


如果您也喜欢它,动动您的小指点个赞吧

除非注明,文章均由 laddyq.com 整理发布,欢迎转载。

转载请注明:
链接:http://laddyq.com
来源:laddyq.com
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。


联系我
置顶