__del__ pattern?

Michael Hudson mwh at python.net
Mon Aug 15 17:58:09 CEST 2005

"Chris Curvey" <ccurvey at gmail.com> writes:

> I need to ensure that there is only one instance of my python class on
> my machine at a given time.

I recommend modifying your requirements such that you ensure that
there is only one "active" instance of your class at any one time (or
something like that), and then use try:finally: blocks to ensure your
locks get removed.

> Is there a better pattern to follow than using a __del__ method?  I
> just need to be absolutely, positively sure of two things:
> 1) There is only one instance of my special class on the machine at a
> time.
> 2) If my special class is destroyed for any reason, I need to be able
> to create another instance of the class.

As another poster mentioned, you also need to work out what you're
going to do if your process gets killed in a way that doesn't allow
finally blocks to run (this doesn't have much to do with Python).


  The above comment may be extremely inflamatory. For your
  protection, it has been rot13'd twice.
                           -- the signature of "JWhitlock" on slashdot

More information about the Python-list mailing list