Mark Hammond wrote:

>I haven't caught up with the rest of the thread yet, but in my 
>experience, the shell keeps objects alive for as shorter time as 
>possible.  So you may find a completely new instance is requested for 
>each context menu request (or for each different item selected, or 
>something), so arranging to 'reload' your implementation module may well 
>work.  I've even used the 'Python.Server' object to reload via Exec() calls.

A quick test (printing id(self) in the shell extention's Initialize
method) seems to confirm that: it prints a different id each time. I
wouldn't know how to exploit this though. Ideally, during development,
I'd like the module to be reloaded for every invocation. The only way I
can see to do that is to use __del__ on the instance to delete the
module from sys.modules, but I've read that __del__ isn't all that
reliable, and I have no idea what it would do for the interaction with
pywin32. (I'm concerned about memory leaks for example.)

Oh, and how does one "reload via Exec() calls"?

Gertjan.


_______________________________________________
python-win32 mailing list
python-win32@python.org
http://mail.python.org/mailman/listinfo/python-win32

Reply via email to