From: Miss Islington (bot) <31488909+miss-islington@users.noreply.github.com> Date: Mon, 26 Jun 2023 18:12:52 +0000 (-0700) Subject: [3.12] gh-106107: document correct error that's raised when a mutable default value... X-Git-Tag: v3.12.0b4~76 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=ea6a4b7523a356b3e3c9182ad34b23f91885a335;p=thirdparty%2FPython%2Fcpython.git [3.12] gh-106107: document correct error that's raised when a mutable default value for a field is detected (gh-106109) (gh-106115) gh-106107: document correct error that's raised when a mutable default value for a field is detected (gh-106109) (cherry picked from commit 512f299e557f4ab60768d36cee9968bd92116367) Co-authored-by: Roderich Schupp --- diff --git a/Doc/library/dataclasses.rst b/Doc/library/dataclasses.rst index a5b201499210..535a60ccca8d 100644 --- a/Doc/library/dataclasses.rst +++ b/Doc/library/dataclasses.rst @@ -738,7 +738,7 @@ for ``x`` when creating a class instance will share the same copy of ``x``. Because dataclasses just use normal Python class creation they also share this behavior. There is no general way for Data Classes to detect this condition. Instead, the -:func:`dataclass` decorator will raise a :exc:`TypeError` if it +:func:`dataclass` decorator will raise a :exc:`ValueError` if it detects an unhashable default parameter. The assumption is that if a value is unhashable, it is mutable. This is a partial solution, but it does protect against many common errors.