[Python-Dev] any support for a methodcaller HOF? (original) (raw)

Giovanni Bajo rasky at develer.com
Fri Feb 3 15:47:05 CET 2006


Nick Coghlan <ncoghlan at gmail.com> wrote:

Consider these comparisons:

itemgetter(1) <=> (x[1] def (x)) attrgetter('foo') <=> (x.foo def (x)) partial(y, arg) <=> (y(arg) def) So rather than yet another workaround for lambda being ugly, I'd rather see a PEP that proposed "Let's make the syntax for deferring an expression not be ugly anymore, now that we have generator expressions and conditionals as an example of how to do it right".

+1000. Instead of keep on adding arcane functions which return objects which (when called) do things not obvious if not by knowing the function beforehand, a generic syntax should be added for deferred execution. I too use itemgetter and friends but the "correct" way of doing a defferred "x[1]" should let you write "x[1]" in the code. This is my main opposition to partial/itemgetter/attrgetter/methodcaller: they allow deferred execution using a syntax which is not equivalent to that of immediate execution. Unless we propose to deprecate "x[1]" in favor of "itemgetter(1)(x)"...

Giovanni Bajo



More information about the Python-Dev mailing list