[Python-ideas] proto-PEP: Fixing Non-constant Default Arguments
Josiah Carlson
jcarlson at uci.edu
Wed Jan 31 02:35:08 CET 2007
"Jan Kanis" <jan.kanis at phil.uu.nl> wrote:
>
> 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)
Fowards compatible then. That is to say, writing for the new proposed
system will break compatibility with older Pythons. On the other hand,
using currently-available language syntax and semantics is compatible
among the entire range of Pythons available today.
- Josiah
More information about the Python-ideas
mailing list