Document that dict.get takes no keyword arguments#128207
Document that dict.get takes no keyword arguments#128207adamtheturtle wants to merge 1 commit intopython:mainfrom
Conversation
Running
```python
{}.get("a", default="b")
```
gives:
```
{}.get("a", default="b")
~~~~~~^^^^^^^^^^^^^^^^^^
TypeError: dict.get() takes no keyword arguments
```
Interesting. I wonder if that's worth fixing (but I also wonder if this has been brought up before). |
Oh, I didn't see that there is! #124675...where I participated in the discussion 😅 |
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]
def get(self, key: _KT, /) -> _VT | None: ...
@overloadand discussion around that at python/typeshed#6694. |
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! |
|
Instead of the change proposed here, a note like the following would better reflect the status quo:
You can pass |
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/