instance references?

Scott David Daniels scott.daniels at acm.org
Mon Jan 30 16:15:43 EST 2006


Alex Martelli wrote:
> My favourite way to use weakref is slightly different: I would have
>    aptbase.drawables = weakref.WeakValueDictionary
typo here:
      aptbase.drawables = weakref.WeakValueDictionary()
> then in each __init__
>    aptbase.drawables[len(aptbase.drawables)] = self
> then in show:
>    for o in aptbase.drawables.values():
>        # render it
The keys you are choosing are probably not a good idea.
Problem demo:

    a,b,c = Something(), Something(), Something()
    b = None
    d = Something()  # overwrites the d entry.

I'd use:
     aptbase.drawables[id(self)] = self

-- 
-Scott David Daniels
scott.daniels at acm.org



More information about the Python-list mailing list