[Python-Dev] Fast access to __builtins__
Guido van Rossum
guido@python.org
Fri, 28 Mar 2003 09:33:19 -0500
> > I don't think it's necessary to forbid things at the C API level in
> > the sense of making it impossible to do. We'll just document
> > that C code shouldn't do that.
>
> What about Python code that modifies that module __dict__ directly? For
> example, using vars() or globals() to get a reference to it and doing
> __setitem__ on it. My warning code only catches assignments that go
> through the module tp_setattro slot. I suppose warning about direct
> __dict__ poking would require a proxy object to wrap the module dict.
Yeah, that's another niggling issue. It would be a shame if using
globals() or vars() anywhere in a module would disable this
optimization. But we can't make these return a proxy either, because
they are frequently used with e.g. "exec ... in globals()".
--Guido van Rossum (home page: http://www.python.org/~guido/)