From: Fred Drake Date: Wed, 27 Nov 2002 05:26:24 +0000 (+0000) Subject: Clarify the interpretation of the __getstate__() return value for X-Git-Tag: v2.2.3c1~215 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=fa871f7a9b4e1589b6dd6d605a60ba6f81cca77c;p=thirdparty%2FPython%2Fcpython.git Clarify the interpretation of the __getstate__() return value for new-style classes. Closes SF bug #637941. --- diff --git a/Doc/lib/libpickle.tex b/Doc/lib/libpickle.tex index 912d27b20fd1..3f4151bac15b 100644 --- a/Doc/lib/libpickle.tex +++ b/Doc/lib/libpickle.tex @@ -406,13 +406,19 @@ Upon unpickling, if the class also defines the method \method{__setstate__()}, it is called with the unpickled state\footnote{These methods can also be used to implement copying class instances.}. If there is no \method{__setstate__()} method, the -pickled object must be a dictionary and its items are assigned to the +pickled state must be a dictionary and its items are assigned to the new instance's dictionary. If a class defines both \method{__getstate__()} and \method{__setstate__()}, the state object needn't be a dictionary and these methods can do what they -want\footnote{This protocol is also used by the shallow and deep +want.\footnote{This protocol is also used by the shallow and deep copying operations defined in the -\refmodule{copy} module.}. +\refmodule{copy} module.} + +\begin{notice}[warning] + For new-style classes, if \method{__getstate__()} returns a false + value, the \method{__setstate__()} method will not be called. +\end{notice} + \subsubsection{Pickling and unpickling extension types}