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
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4