Calling a generator multiple times
Greg Ewing
greg at cosc.canterbury.ac.nz
Mon Dec 10 00:45:34 EST 2001
More information about the Python-list mailing list
Mon Dec 10 00:45:34 EST 2001
- Previous message (by thread): Calling a generator multiple times
- Next message (by thread): Calling a generator multiple times
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Just van Rossum wrote: > > I mentioned the > archives of python-iterators list before, but I think the PEP is a better > reference: > http://python.sourceforge.net/peps/pep-0255.html I don't think reading the list discussions is going to change anyone's mind. I read them all the first time around, and they didn't change mine. The crux of the matter seems to be in this paragraph from the PEP: In practice (how you think about them), generators *are* functions, but with the twist that they're resumable. The mechanics of how they're set up is a comparatively minor technical issue, and introducing a new keyword would unhelpfully overemphasize the mechanics of how generators get started (a vital but tiny part of a generator's life). This could perhaps do with some elaboration. What I think it's saying is that, the vast majority of the time, generators will be called in the context of a for loop: for x in some_generator(some_args): ... Now, in that case, if you squint at it and don't question anything too closely, you can pretend it's Icon and that the generator proceeds normally until it hits a yield at which point it starts behaving something like a couroutine. As long as you're willing to accept that fiction, you don't need to know about the magic going on when the generator is first called -- it's an implementation detail. But if you stop and think "Hey, wait a minute, how does that actually *work*?" and start playing around with the generator on its own, the magic starts showing through, and generators stop looking like ordinary functions at all. It's at *that* point that some of us get the very strong feeling that there is something wrong with declaring a generator just like a function. Telling us to go read the discussions or the PEP does nothing to dispel that feeling. We've been there, and have come to a different conclusion. -- Greg Ewing, Computer Science Dept, University of Canterbury, Christchurch, New Zealand To get my email address, please visit my web page: http://www.cosc.canterbury.ac.nz/~greg
- Previous message (by thread): Calling a generator multiple times
- Next message (by thread): Calling a generator multiple times
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the Python-list mailing list