[Python-Dev] Fun with 2.3 shutdown (original) (raw)

Armin Rigo arigo at tunes.org
Tue Sep 23 12:49:09 EDT 2003


Hello Phillip,

On Tue, Sep 23, 2003 at 12:09:18PM -0400, Phillip J. Eby wrote:

So, unless a module's dictionary were to reference the module (or functions were to reference the module rather than (or in addition to) the module dictionary), it seems the proposed semantics would lead to unexpected results.

Right.

I'm not sure I understand the reasons behind the current module/globals relationship. As modules zap their globals with None when they are deallocated, we observe the following behavior:

(foo.py) def g(): return 5 def f(): return g()

from foo import f import sys; del sys.modules['test4'] f() Traceback (most recent call last): File "", line 1, in ? File "foo.py", line 4, in f return g() TypeError: 'NoneType' object is not callable

Possibly far-fetched, but I wouldn't be surprized to find large applications that mess with sys.modules in some way. For example, in one case, to ensure that a whole collection of interdependent modules will be reloaded on demand after I detect a change in one of them, I'm simply removing them all from sys.modules.

Armin



More information about the Python-Dev mailing list