-
-
Notifications
You must be signed in to change notification settings - Fork 31.9k
Document that dict.get takes no keyword arguments #128207
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
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: ...
@overload and 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
gives:
Relatedly, this means that
dict
does not implementcollections.abc.Mapping
which does allow keyword arguments:cpython/Lib/_collections_abc.py
Line 808 in 6f3c2c8
📚 Documentation preview 📚: https://cpython-previews--128207.org.readthedocs.build/