[Python-ideas] proto-PEP: Fixing Non-constant Default Arguments

Jan Kanis jan.kanis at phil.uu.nl
Wed Jan 31 01:28:31 CET 2007


On Tue, 30 Jan 2007 23:31:36 +0100, Josiah Carlson <jcarlson at uci.edu>  
wrote:
> Roman Susi <rnd at onego.ru> wrote:
>>
>>     def foo(x, y, z, bar=, qux=):
>>         if baz is Missing:
>>             baz = []
>>         #code
>>
>> at least, it doesn't require decorators, is backward compatible
>> (hopefully no grammar conflicts in there), reads as English.
>
> The above with a missing value for a default *is not* backwards
> compatible with previous Pythons.  New syntax is, by definition, not
> backwards compatible.
>
>  - Josiah

As a matter of fact, backward-compatible syntax changes are certainly  
possible. (ever wondered how C++ got it's syntax?) Any valid current  
python is still going to behave exactly the same if this syntax were to be  
accepted. Talking about backward compatibility, I think it is safe to  
ignore any text files that don't get accepted by the python interpreter.  
This syntax change would certainly not break any existing production  
python code.
(note: the above statements do not entail in any way that I am in favour  
of this syntax change)

- Jan



More information about the Python-ideas mailing list