does python have useless destructors?

David Turner dkturner at telkomsa.net
Tue Jun 15 04:16:31 EDT 2004


"Delaney, Timothy C (Timothy)" <tdelaney at avaya.com> wrote in message news:<mailman.957.1087256687.6949.python-list at python.org>...
> David Turner wrote:
> 
> > This will be a pain for the Jython implementers.  However, it is
> > doable.  Note that I never said the objects couldn't be garbage
> > collected, just that   del   had to be called at certain well-defined
> > times.  What this will involve is the Jython compiler inserting a lot
> > of implicit try/finally constructs.
> > 
> > Can anyone see a reason why this scheme wouldn't work?
> 
> Yes - Jython cannot know about references to objects created *in Java
> code*. It is therefore impossible for Jython to maintain reference
> counts when an object is passed to Java (i.e. non-Python) code.
> 

Thank you, Tim, that's the first substantial objection I've heard :-).

So, if Java code makes use of a Python object with __del__, all bets
are off.  This is certainly a limitation, but I'm not sure that it's a
very serious one, as RAII objects tend to be used in localized
contexts.

I think the only available behaviour is simply to ignore the
possibility of an object being referenced externally.  Let Java code
use Java idioms (try/finally).

Regards
David Turner



More information about the Python-list mailing list