【发布时间】:2010-07-09 09:44:21
【问题描述】:
我有下面的 sn-p 它使用生成器来提供新的 ID
...
def __init__(self, id_generator = None):
if id_generator is None: id_generator = 0
if isinstance(id_generator, int):
import itertools
self._generator = itertools.count(id_generator)
else:
self._generator = id_generator
...
id = self._generator.next() #0
id = self._generator.next() #1
id = self._generator.next() #2
id = self._generator.next() #3
我的问题是,假设我有一个现有的 id 号码,例如 int(99) 需要被接受 在运行时需要_generator生成从99开始的ID。 看起来像:
0
1
2
3
4
<---- new id number 99 be given in somehow
99
100
101
如何将它反馈给 _generator?
只需使用self._generator = itertools.count(99) 还是有更好的方法?
更多,sucn 混淆可以更概括:我如何备忘录/分配生成器的 如果不是 int 类型的状态/值?
谢谢!
【问题讨论】:
-
好吧,
self._generator = itertools.count(99)有什么问题? -
我还想将 _generator 保持为“正式”状态并使用另一个副本进行处理,来自 C void swap(a,b) 的个人暴躁,现在我知道我可以使用 tee()。谢谢
标签: python iterator duplicates generator restore