From cb8398815150e458b3f977a5bd398e576d325aa3 Mon Sep 17 00:00:00 2001 From: Fred Drake Date: Wed, 28 Mar 2001 21:15:41 +0000 Subject: Added example use of weak references, contributed by Tim Peters. --- Doc/lib/libweakref.tex | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/Doc/lib/libweakref.tex b/Doc/lib/libweakref.tex index 07e6a3b..ca6c08a 100644 --- a/Doc/lib/libweakref.tex +++ b/Doc/lib/libweakref.tex @@ -181,6 +181,28 @@ idiom shown above is safe in threaded applications as well as single-threaded applications. +\subsection{Example \label{weakref-example}} + +This simple example shows how an application can use objects IDs to +retrieve objects that it has seen before. The IDs of the objects can +then be used in other data structures without forcing the objects to +remain alive, but the objects can still be retrieved by ID if they +do. + +% Example contributed by Tim Peters . +\begin{verbatim} +import weakref + +_id2obj_dict = weakref.mapping() + +def remember(obj): + _id2obj_dict[id(obj)] = obj + +def id2obj(id): + return _id2obj_dict.get(id) +\end{verbatim} + + \subsection{Weak References in Extension Types \label{weakref-extension}} -- cgit v0.12