Torsten Bronger wrote: > keithley = GpibInstrument(14) > keithley.write("*IDN?") > print keithley.read() > > A keithley.close() would be a wart in my opinion; instead I want to > hide the whole session thing from the programmer. Besides, I > haven't yet given up the hope that the issues with __del__ can be > tackled.
At least one alternative comes to mind. Have the GpibInstrument class (or its module) register an atexit() method, and have the constructor for that class track all instances. On shutdown, the atexit method goes through all instruments that are still open and issues the .close() requests, or whatever you do in the __del__ now. In other words, it would be indistinguishable from __del__ from the users' point of view, at the cost of a little extra code to make things explicit, instead of relying on the implicit and, unfortunately, unreliable nature of __del__. (Which is probably the real wart in Python, unfortunately.) -Peter -- http://mail.python.org/mailman/listinfo/python-list