[Python-ideas] Addition to operator module: starcaller

Emanuel Barry vgr255 at live.ca
Thu Jul 21 10:19:46 EDT 2016

You’re presumably doing something like ‘star = starcaller(f); star((“foo”, “bar”, “baz”))’ – how is it different from ‘f(*(“foo”, “bar”, “baz”))’ ? I don’t see any difference…


From: Python-ideas [mailto:python-ideas-bounces+vgr255=live.ca at python.org] On Behalf Of Daniel Spitz
Sent: Thursday, July 21, 2016 10:07 AM
To: python-ideas at python.org
Subject: [Python-ideas] Addition to operator module: starcaller


I have run into a use case where I want to create a wrapper object that will star-unpack a sequence of arguments to pass to a function. Currently one way to construct this is to create a function:

def starcaller(f):
    def wrapper(args):
        return f(*args)
    return wrapper

Such a function feels simple enough, and specific enough to the language, that it would fit in well in the operator module of the standard library. We already have a similar representation of this functionality in itertools.starmap.

Whereas the nested function implementation above will produce unpickleable objects (due to the closure), a straightforward c implementation will produce pickleable ones, making them useful for parallel applications.

Dan Spitz
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-ideas/attachments/20160721/5a40dccc/attachment-0001.html>

More information about the Python-ideas mailing list