##
3.3.2 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.

      import weakref

      _id2obj_dict = weakref.WeakValueDictionary()

      def remember(obj):
          oid = id(obj)
          _id2obj_dict[oid] = obj
          return oid

      def id2obj(oid):
          return _id2obj_dict[oid]