[Python-checkins] cpython: Issue #24164: Document changes to __getnewargs__ and __getnewargs_ex__.

serhiy.storchaka python-checkins at python.org
Tue Oct 13 14:27:20 EDT 2015


https://hg.python.org/cpython/rev/de982d8b7b15
changeset:   98728:de982d8b7b15
user:        Serhiy Storchaka <storchaka at gmail.com>
date:        Tue Oct 13 21:26:35 2015 +0300
summary:
  Issue #24164: Document changes to __getnewargs__ and __getnewargs_ex__.

files:
  Doc/library/pickle.rst |  19 +++++++++++++------
  1 files changed, 13 insertions(+), 6 deletions(-)


diff --git a/Doc/library/pickle.rst b/Doc/library/pickle.rst
--- a/Doc/library/pickle.rst
+++ b/Doc/library/pickle.rst
@@ -488,7 +488,7 @@
 
 .. method:: object.__getnewargs_ex__()
 
-   In protocols 4 and newer, classes that implements the
+   In protocols 2 and newer, classes that implements the
    :meth:`__getnewargs_ex__` method can dictate the values passed to the
    :meth:`__new__` method upon unpickling.  The method must return a pair
    ``(args, kwargs)`` where *args* is a tuple of positional arguments
@@ -500,15 +500,22 @@
    class requires keyword-only arguments.  Otherwise, it is recommended for
    compatibility to implement :meth:`__getnewargs__`.
 
+   .. versionchanged:: 3.6
+      :meth:`__getnewargs_ex__` is now used in protocols 2 and 3.
+
 
 .. method:: object.__getnewargs__()
 
-   This method serve a similar purpose as :meth:`__getnewargs_ex__` but
-   for protocols 2 and newer.  It must return a tuple of arguments ``args``
-   which will be passed to the :meth:`__new__` method upon unpickling.
+   This method serve a similar purpose as :meth:`__getnewargs_ex__`, but
+   supports only positional arguments.  It must return a tuple of arguments
+   ``args`` which will be passed to the :meth:`__new__` method upon unpickling.
 
-   In protocols 4 and newer, :meth:`__getnewargs__` will not be called if
-   :meth:`__getnewargs_ex__` is defined.
+   :meth:`__getnewargs__` will not be called if :meth:`__getnewargs_ex__` is
+   defined.
+
+   .. versionchanged:: 3.6
+      Before Python 3.6, :meth:`__getnewargs__` was called instead of
+      :meth:`__getnewargs_ex__` in protocols 2 and 3.
 
 
 .. method:: object.__getstate__()

-- 
Repository URL: https://hg.python.org/cpython


More information about the Python-checkins mailing list