[Python-Dev] Generator methods - "what's next" ?
Firephoenix
firephoenix at wanadoo.fr
Sun Apr 5 13:31:48 CEST 2009
Hello everyone
I'm a little confused by the recent changes to the generator system...
I basically agreed with renaming the next() method to __next__(), so as
to follow the naming of other similar methods (__iter__() etc.).
But I noticed then that all the other methods of the generator had
stayed the same (send, throw, close...), which gives really weird (imo)
codes :
next(it)
it.send(35)
it.throw(Exception())
next(it)
....
Browsing the web, I've found people troubled by that asymmetry, but no
remarks on its causes nor its future...
Since __next__(), send() and others have really really close semantics,
I consider that state as a python wart, one of the few real ones I can
think of.
Is there any plan to fix this ? Either by coming back to the next()
method, or by putting all the "magical methods" of generators in the
__specialattributes__ bag ?
next(it)
send(it, 5)
throw(it, Exception())
...
Thanks a lot for the information,
Pascal
More information about the Python-Dev
mailing list