]> granicus.if.org Git - python/commitdiff
Added example use of weak references, contributed by Tim Peters.
authorFred Drake <fdrake@acm.org>
Wed, 28 Mar 2001 21:15:41 +0000 (21:15 +0000)
committerFred Drake <fdrake@acm.org>
Wed, 28 Mar 2001 21:15:41 +0000 (21:15 +0000)
Doc/lib/libweakref.tex

index 07e6a3ba71398741168d1229a75340fb2fa84d1f..ca6c08a3c064411b7c04602cc8c06f86da06492c 100644 (file)
@@ -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 <tim_one@msn.com>.
+\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}}