
On 6/7/2022 4:59 PM, Chris Angelico wrote:
On Wed, 8 Jun 2022 at 00:36, <martineznicolas41541@gmail.com> wrote:
Hello!
Do you know if there has been discussions around why is the default argument is positional only in the dict methods get and pop?
I think
``` d.get(key, default=3) ```
way more readable than
``` d.get(key, 3) ```
specially since max and min builtin functions use default as a keyword argument. With min and max, it MUST be a keyword argument, because positional arguments are the values to be compared. So I think the main reason is "because nobody ever bothered to do it". If there's enough value in it, that could probably be changed, although mere consistency alone isn't a very strong argument.
I suspect it's been this way because the API is so old. Now that we have Argument Clinic it would be easier to implement as a keyword argument. But there may also be a performance issue with keyword arguments vs. positional. People are touchy when it comes to dicts! Eric