[Python-Dev] Missing operator.call (original) (raw)

Brett Cannon brett at python.org
Wed Feb 4 19:25:32 CET 2009


On Wed, Feb 4, 2009 at 05:35, Hrvoje Niksic <hrvoje.niksic at avl.com> wrote:

Andrew Bennetts wrote:

A patch to add operator.caller(*args, **kwargs) may be a good idea. Your example would then be: map(operator.caller(), lst) Regarding the name, note that I proposed operator.call (and operator.call) because it corresponds to the call special method, which is analogous to how operator.neg corresponds to neg, operator.add to add, etc. The term "caller" implies creation of a new object that carries additional state, such as method name in operator.methodcaller, item in operator.itemgetter, or attr in operator.attrgetter.

Part of the problem is the term 'call' is an overloaded term. Do you really mean only objects that define call? What about objects that define init and thus can be called as well? If you mean the former than you have to make sure the docs are very clear about this; there is a reason we got rid of callable(). If you mean the latter then there is little benefit to the function since [x() for x in lst] gets you the same result as your map call.

-Brett



More information about the Python-Dev mailing list