TP wrote:
Hi everybody,

I have a data structure (a tree) that has one constraint: I can only store
strings in this data structure.

To know if an object foo already exists in memory, I store "str(id(foo))" in
the data structure.
OK.

But how do I get a usable reference from the id value?
For example, if "foo" has a method "bar()", how can I call "foo.bar()"
from "str(id(foo))" (say, 149466208).


Short answer:  You can't!

Longer answer:  You still can't, but you may be able to work around it:

(1)  Build up a dictionary in parallel to the structure:
       idMapper[id(foo)] = foo
     and later, index with
       idMapper[int(idString)] to get foo back

(2) Get a different data structure. This one is clearly not satisfying your needs.

(3) Pickle (or marshal or serialize as it's also called) your object into a (perhaps) long string to store. When the string is retrieved, unpickle to reconstruct an equivalent object. This new version of the original foo may or may not be adequate for your use.



Gary Herron



Thanks in advance,

Julien


--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to