On Tue, Aug 20, 2013 at 2:28 AM, Fábio Santos <fabiosantos...@gmail.com> wrote: > I do realize that syntax in python is practically written in stone, but I > have seen changes come by if they have good reasons. For example, > keyword-only argument syntax was added. > > I suggested this because I thought it would be the most practical way to > create partial functions. Lambda is too verbose and kind of ugly, and its > purpose is not to create partials, functools.partial does not allow argument > "insertion" (the star thing) nor unpacking.
I think that if you're doing argument insertion, then your partial application is overly complex in the way that it modifies the original argspec. You should be looking at it as a new function, not as a partial application that prevents you from easily supplying a doc string for it. If you want to specify an arbitrary combination of arguments in your partial application, you can already do that using keyword arguments. The exception would be if the function being partially applied takes a *args argument and you want to specify some of those arguments using partial without specifying earlier arguments. That seems like an abuse of partial application to me. Tuple unpacking in function signatures was a feature in Python 2, and it was intentionally removed in Python 3, so this is very unlikely to happen. See PEP 3113. Besides which, the syntax you suggest for this is unintuitive. spam_unpacking = spam{1, (*, *)} To me, this reads that spam_unpacking will take two positional arguments that will be packed into the second argument sent to spam (b), and that the third argument to spam (c) is not specified here. I don't think that's what you intended. -- http://mail.python.org/mailman/listinfo/python-list