On Fri, 15 May 2009 08:26:30 pm Nick Coghlan wrote:
Steven D'Aprano wrote:
Some years ago, Python overloaded the binary operators * and ** for use as special markers in parameter lists. I suggest we could do the same, by overloading the & operator in a similar fashion: inside the parameter list, &x would mean to delay evaluation of the default argument:
Marking the parameter name strikes me as wrong anyway - it's only the evaluation of the default argument which is special, not the parameter itself.
But it is the parameter that is special. The default object itself is not. Consider the function definition:
def f(x=, &y=):
(or any other syntax you prefer). The empty list you get as the default value for x is exactly the same as the empty list you get in y, in every way except for identity.