[Python-Dev] Re: native code compiler? (or, OCaml vs. Python)
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