[Python-Dev] Re: native code compiler? (or, OCaml vs. Python) (original) (raw)

Jeremy Hylton jeremy@zope.com
Mon, 3 Feb 2003 17:23:39 -0500


"GvR" == Guido van Rossum <guido@python.org> writes:

do you mean specifically random.dict or any modules dict?

GvR> Any module's dict.

If the latter there would be quite some breakage. It is at least used for monkey patching modules to make them "unittestable" which is a valid use case IMO.

GvR> Why would this be done by patching the module's dict rather GvR> than assigning to attributes of the module?

Maybe module's dicts could be "frozen" by default and this could be explicitely turned off (via a sys-hook).

GvR> What I proposed was only closing off write access to the GvR> dict so that the setattr code for type module can implement GvR> certain restrictions (e.g. no assignment to attributes named GvR> "len").

I'd certainly like that feature, except for the times I'd want to circumvent it.

On many occasions I have externally patched a module's namespace for debugging. It's been really convenient to replace some function with a wrapper that does some logging or updates a table tracking currently used resources. I've done the same with builtin open/file. As you noted, it seems less useful to override other builtins for this purpose.

I'd suggest that frozen module namespaces by a feature of -O, except that I never use -O.

Jeremy