Nick Coghlan wrote:

>> Unfortunately you're right... this is all too simple. The existing
>> mechanism doesn't have a problem with __del__ methods that do not
>> participate in loops. For those that DO participate in loops I
>> think it's perfectly plausible for your __del__ to receive a
>> reference to the actual object being finalized.
>
> Nope. If the argument to __del__ has a strong reference to the
> object, that object simply won't get finalized at all because it's
> not in an unreachable cycle.

What if the "self" passed to __del__ was instead a weakref.proxy, or a
similar wrapper object which does not give you access to the object itself
but lets you access its attributes? The object could have been already
collected for what I care, what I really need is to be able to say
"self.foo" to access what used to be a "foo" member of self. You can create
a totally different object of any type but with the same __dict__. Ok, it's
not that easy (properties, etc.), but you get the idea.

Am I missing something?
-- 
Giovanni Bajo

_______________________________________________
Python-3000 mailing list
[email protected]
http://mail.python.org/mailman/listinfo/python-3000
Unsubscribe: 
http://mail.python.org/mailman/options/python-3000/archive%40mail-archive.com

Reply via email to