[Python-Dev] Re: weakref gc semantics
tim.peters at gmail.com
Fri Nov 5 16:05:23 CET 2004
>> Maybe the callback shouldn't be passed the weakref object?
>> I don't see what good that does anyway, since the weakref
>> is just an empty shell by then, isn't it?
> No. It can still be used as a key. It still has it's original
> hash value and will compare equal to other weakrefs to the same
> original object. Weak-key dictionaries depend on this.
> In addition, as Tim points out, it could be a weakref-subclass instance
> and could have additional useful data.
Adn weak-value dictionaries depend on that; from weakref.py:
"""Specialized reference that includes a key corresponding to the value.
This is used in the WeakValueDictionary to avoid having to create
a function object for each key stored in the mapping. A shared
callback object can use the 'key' attribute of a KeyedRef instead
of getting a reference to the key from an enclosing scope.
More information about the Python-Dev