what is the use of weakref?
me at privacy.net
Fri Jan 30 10:14:14 CET 2004
"ali" <rmangaliag at slu.edu.ph> wrote in
news:1jipe1-fqq.ln1 at news.slu.edu.ph:
> i've seen a lot of times in programs but until now i still dont know
> the use of the weakref module... any help will be appreciated...
Normally in Python an object is never destroyed until you can no longer
reference it. Occasionally it can be convenient to hold onto an object, but
not to mind too much if it gets destroyed.
For example, say you had a word processing application with a complex data
structure for each paragraph style that was used in a document. When
someone changes the style of an existing paragraph, if it now matches the
style of another paragraph you want to share the same data structure rather
than creating a new one. What you could do here would be to make each
paragraph hold a strong reference to the required data structure, but also
store a weak value dictionary which maps the description of the paragraph
style onto the data structures.
With this kind of setup, the entries in the weak value dictionary always
exactly match the paragraph styles which are in use; as soon as a style is
no longer used it can be released, but you never need to duplicate the
complex data structure as a simple dictionary lookup will give you a
suitable one if it exists.
In short weak references help you to share or reuse data structures while
still allowing them to be freed automatically when no longer used.
More information about the Python-list