[Python-Dev] "groupby" iterator

Thomas Heller theller at python.net
Mon Dec 1 06:43:43 EST 2003


Guido van Rossum <guido at python.org> writes:

>> How about:
>> 
>> extract(attr='grade')
>> extract(item=2)
>> extract(method='foo')   # returns the result of calling 'ob.foo()'
>> 
>> And following the pattern of Zope's old "query" package:
>> 
>> extract(extract(attr='foo'), attr='bar')   # extracts ob.foo.bar
>> extract(extract(item=10), method='spam')   # extracts ob[10].spam()
>> 
>> i.e., the first (optional) positional argument to extract is a function 
>> that's called on the outer extract's argument, and the return value is then 
>> used to perform the main extract operation on.
>
> I'm not sure what the advantage of this is.  It seems more typing,
> more explanation, probably more code to implement (to check for
> contradicting keyword args).

Hm, couldn't "lambda ob: ob.foo.bar" return exactly the same thing as

"extract(extract(attr='foo'), attr='bar')"

? In other words: return specialized C implemented functions for simple
lambda expressions?

Thomas




More information about the Python-Dev mailing list