Uh oh!
There was an error while loading. Please reload this page.
Document that dict.get takes no keyword arguments - #128207
Conversation
Running
```python
{}.get("a", default="b")
```
gives:
```
{}.get("a", default="b")
~~~~~~^^^^^^^^^^^^^^^^^^
TypeError: dict.get() takes no keyword arguments
```ZeroIntensity
commented
Dec 24, 2024
Interesting. I wonder if that's worth fixing (but I also wonder if this has been brought up before). |
ZeroIntensity
commented
Dec 24, 2024
Oh, I didn't see that there is! #124675...where I participated in the discussion 😅 |
adamtheturtle
commented
Dec 24, 2024
I would like for it to be fixed, and I have commented on a related issue (#124675). As for "brought up before" - I'm not sure here, but I found this comment in # Positional-only in dict, but not in MutableMapping@overload# type: ignore[override]defget(self, key: _KT, /) ->_VT|None: ...
@overloadand discussion around that at python/typeshed#6694. |
adamtheturtle
commented
Dec 24, 2024
FWIW when you asked I pasted my issue text into ChatGPT and asked "I want to write up this bug for CPython. Has any duplicate issue been brought up before?". It found me that issue! |
joooeey
commented
Jan 7, 2025
Instead of the change proposed here, a note like the following would better reflect the status quo:
You can pass |
ZeroIntensity
commented
Mar 25, 2025
That's arguably a PyPy implementation detail :) I'm going to close this in favor of #128208, which documents this for |
Running
{}.get("a", default="b")gives:
Relatedly, this means that
dictdoes not implementcollections.abc.Mappingwhich does allow keyword arguments:cpython/Lib/_collections_abc.py
Line 808 in 6f3c2c8
📚 Documentation preview 📚: https://cpython-previews--128207.org.readthedocs.build/