Nick Coghlan <[EMAIL PROTECTED]> 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 _______________________________________________ Python-Dev mailing list Python-Dev@python.org http://mail.python.org/mailman/listinfo/python-dev Unsubscribe: http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com