revive a generator
Ian Kelly
ian.g.kelly at gmail.com
Fri Oct 21 10:25:22 EDT 2011
More information about the Python-list mailing list
Fri Oct 21 10:25:22 EDT 2011
- Previous message (by thread): revive a generator
- Next message (by thread): revive a generator
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
On Fri, Oct 21, 2011 at 2:02 AM, Yingjie Lan <lanyjie at yahoo.com> wrote: > Oops, my former reply has the code indentation messed up > by the mail system. Here is a reformatted one: > > > What if the generator involves a variable from another scope, > and before re-generating, the variable changed its value. > Also, the generator could be passed in as an argument, > so that we don't know its exact expression. In the former case, use a named generator function and call it twice to create two generators. In the latter case, don't pass in the generator as an argument. Pass in a callable that constructs the iterator instead. Modifying your example: vo = 34 def mygen(): for x in range(3): yield vo * x def myfun(g): global vo for i in g(): print(i) vo += 3 for i in g(): print(i) myfun(mygen) Cheers, Ian
- Previous message (by thread): revive a generator
- Next message (by thread): revive a generator
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the Python-list mailing list