[Python-ideas] proto-PEP: Fixing Non-constant Default Arguments
Jan Kanis
jan.kanis at phil.uu.nl
Tue Jan 30 11:36:26 CET 2007
On Tue, 30 Jan 2007 06:40:35 +0100, Chris Rebert <cvrebert at gmail.com>
wrote:
> George Sakkis wrote:
>> I'm sure that the python-devs and the BDFL would have
>> thought about it quite a bit when the current semantics were decided,
>
> ...which was probably a while ago. They might reconsider the issue now
> that some time has passed and they've seen how their decision has worked
> out. But yes, your analysis is a definite possibility.
Just looked it up, and python has had lexical variables since version 2.1,
and default arguments since long before that. (forever?) Without lexical
variables it's near impossible to implement re-evaluating default
arguments, because the variables those default expressions refer to may no
longer be available at function call time. So, The BDFL and other python
devs didn't really have a choice but to have the default expressions
evaluate at definition time (or implement lexical scopes, which is what
has happened by now).
Jan
More information about the Python-ideas
mailing list