diff options
Diffstat (limited to 'Doc/libcopy.tex')
-rw-r--r-- | Doc/libcopy.tex | 82 |
1 files changed, 0 insertions, 82 deletions
diff --git a/Doc/libcopy.tex b/Doc/libcopy.tex deleted file mode 100644 index 4e43585..0000000 --- a/Doc/libcopy.tex +++ /dev/null @@ -1,82 +0,0 @@ -\section{Standard Module \module{copy}} -\label{module-copy} -\stmodindex{copy} -\setindexsubitem{(copy function)} -\ttindex{copy} -\ttindex{deepcopy} - -This module provides generic (shallow and deep) copying operations. - -Interface summary: - -\begin{verbatim} -import copy - -x = copy.copy(y) # make a shallow copy of y -x = copy.deepcopy(y) # make a deep copy of y -\end{verbatim} -% -For module specific errors, \code{copy.error} is raised. - -The difference between shallow and deep copying is only relevant for -compound objects (objects that contain other objects, like lists or -class instances): - -\begin{itemize} - -\item -A \emph{shallow copy} constructs a new compound object and then (to the -extent possible) inserts \emph{references} into it to the objects found -in the original. - -\item -A \emph{deep copy} constructs a new compound object and then, -recursively, inserts \emph{copies} into it of the objects found in the -original. - -\end{itemize} - -Two problems often exist with deep copy operations that don't exist -with shallow copy operations: - -\begin{itemize} - -\item -Recursive objects (compound objects that, directly or indirectly, -contain a reference to themselves) may cause a recursive loop. - -\item -Because deep copy copies \emph{everything} it may copy too much, e.g.\ -administrative data structures that should be shared even between -copies. - -\end{itemize} - -Python's \code{deepcopy()} operation avoids these problems by: - -\begin{itemize} - -\item -keeping a table of objects already copied during the current -copying pass; and - -\item -letting user-defined classes override the copying operation or the -set of components copied. - -\end{itemize} - -This version does not copy types like module, class, function, method, -nor stack trace, stack frame, nor file, socket, window, nor array, nor -any similar types. - -Classes can use the same interfaces to control copying that they use -to control pickling: they can define methods called -\code{__getinitargs__()}, \code{__getstate__()} and -\code{__setstate__()}. See the description of module \code{pickle} -for information on these methods. -\refstmodindex{pickle} -\setindexsubitem{(copy protocol)} -\ttindex{__getinitargs__} -\ttindex{__getstate__} -\ttindex{__setstate__} |