mirror of
				https://github.com/python/cpython.git
				synced 2025-11-04 03:44:55 +00:00 
			
		
		
		
	Clarify the interpretation of the __getstate__() return value for
new-style classes. Closes SF bug #637941.
This commit is contained in:
		
							parent
							
								
									a01fa26396
								
							
						
					
					
						commit
						e9cfcef71e
					
				
					 1 changed files with 9 additions and 3 deletions
				
			
		| 
						 | 
					@ -412,13 +412,19 @@ Upon unpickling, if the class also defines the method
 | 
				
			||||||
\method{__setstate__()}, it is called with the unpickled
 | 
					\method{__setstate__()}, it is called with the unpickled
 | 
				
			||||||
state\footnote{These methods can also be used to implement copying
 | 
					state\footnote{These methods can also be used to implement copying
 | 
				
			||||||
class instances.}.  If there is no \method{__setstate__()} method, the
 | 
					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
 | 
					new instance's dictionary.  If a class defines both
 | 
				
			||||||
\method{__getstate__()} and \method{__setstate__()}, the state object
 | 
					\method{__getstate__()} and \method{__setstate__()}, the state object
 | 
				
			||||||
needn't be a dictionary and these methods can do what they
 | 
					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
 | 
					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}
 | 
					\subsubsection{Pickling and unpickling extension types}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue