On Mon, Feb 11, 2019 at 1:35 PM Chris Angelico <ros...@gmail.com> wrote: > > On Tue, Feb 12, 2019 at 7:26 AM Avi Gross <avigr...@verizon.net> wrote: > > If you want to talk about recent or planned changes, fine. But make that > > clear. I was talking about how in the past positional arguments did not have > > defaults available at the def statement level. I was talking about how use > > of the symbol "=" in the context of defining function parameters had > > multiple meanings. It not only established that the parameter accepted a > > keyword but also provided a default. > > When was this the case? Positional arguments with defaults is a > concept known in MANY languages, including C. The equals sign has > nothing to do with keyword arguments. > > Calling on the D'Aprano Collection of Ancient Pythons for confirmation > here, but I strongly suspect that positional arguments with defaults > go back all the way to 1.x.
The archived documentation shows that both parameter defaults and keyword arguments have been around since at least 1.4. I can't directly confirm that required parameters could be passed by keyword, but I see nothing in there that says they can't, or that appears to conflate parameters having defaults with keyword arguments, which is as one would expect -- whether an argument is passed positionally or by keyword is a property of the function *call* expression, whereas whether a parameter has a default or not is a property of the function *definition*. They happen to both use the = symbol followed by an expression, but in different syntactical environments, and that is the only correlation between them. -- https://mail.python.org/mailman/listinfo/python-list