yield_all needed in Python
Duncan Booth
duncan.booth at invalid.invalid
Tue Mar 1 12:48:57 EST 2005
Douglas Alan wrote:
> "Terry Reedy" <tjreedy at udel.edu> writes:
>
>> Cetainly, if <yield_all
>> iterator> == <for i in iterator: yield i>, I don't see how anything
>> is gained except for a few keystrokes.
>
> What's gained is making one's code more readable and maintainable,
> which is the one of the primary reasons that I use Python.
On of the reasons why Python is readable is that the core language is
comparatively small. Adding a new reserved word simply to save a few
characters is a difficult choice, and each case has to be judged on its
merits, but it seems to me that in this case the extra syntax is a burden
that would have to be learned by all Python programmers with very little
benefit.
Remember that many generators will want to do slightly more than just yield
from another iterator, and the for loop allows you to put in additional
processing easily whereas 'yield_all' has very limited application e.g.
for tok in tokenstream():
if tok.type != COMMENT:
yield tok
I just scanned a random collection of my Python files: out of 50 yield
statements I found only 3 which could be rewritten using yield_all.
More information about the Python-list
mailing list