[Python-Dev] accumulator display syntax
skip at pobox.com
Fri Oct 17 16:20:38 EDT 2003
>> Is it supposed to return a generator function which I can assign to a
>> variable (or pass to the builtin function sum() as in your example)
>> and call later, or is it supposed to turn the current function into a
>> generator function (so that each executed yield statement returns a
>> value to the caller of the current function)?
Alex> Neither: it returns an iterator, _equivalent_ to the one that
Alex> would be returned by _calling_ a generator such as
Alex> def xxx():
Alex> for x in S:
Alex> yield x
All the more reason not to like this. Why not just define the generator
function and call it?
While Perl sprouts magical punctuation, turning its syntax into line noise,
Python seems to be sprouting multiple function-like things. We have
* unbound methods
* bound methods
* generator functions
* iterators (currently invisible via syntax, but created by calling a
* instances magically callable via __call__
and now this new (rather limited) syntax for creating iterators.
I am beginning to find it all a bit confusing and unsettling.
More information about the Python-Dev