[Python-ideas] proto-PEP: Fixing Non-constant Default Arguments
Chris Rebert
cvrebert at gmail.com
Tue Jan 30 04:17:15 CET 2007
Jim Jewett wrote:
> On 1/29/07, Roman Susi <rnd at onego.ru> wrote:
>
>> P.S. However, I may be wrong. In that case my syntax suggestion would be
>> this:
>
>> def foo(non_const or []):
>> ...
>>
>> where [] is executed at runtime BECAUSE at def time non_const is somehow
>> True and that is enough to leave [] alone.
>
> It would also be possible to treat literals (like "[]") as "do it over
> each time", and more general expressions (like "list()") as they are
> treated today.
As discussed in the proto-PEP, there are many cases where non-literal
default values need to be re-evaluated at each call. A solution to this
problem needs to take this into account. Also, the proto-PEP's proposal
tries to have the behavior of default arguments be as uniform as
possible and not "magically" decide the correct behavior, especially by
using something as arbitrary as what expression is used for the default
argument.
- Chris Rebert
More information about the Python-ideas
mailing list