[Python-3000] __builtin__ and __builtins__

Guido van Rossum guido at python.org
Mon Mar 12 23:35:15 CET 2007


On 3/12/07, Greg Ewing <greg.ewing at canterbury.ac.nz> wrote:
> Ka-Ping Yee wrote:
>
> > We have "import as", though.  If you want to import the default
> > builtins without using them as the builtins, you can say
> >
> >     import __builtin__ as default_builtin
>
> Seems to me it would be better to rename the module
> to a non-double-underscore name. There's really nothing
> magical about the module itself, only the name used
> by global variable lookups.

Not true; modifying the module affects every other module (except
those that have imported some alternative). This is why I renamed it
to __builtin__ sometime in the dark ages (way before introducing
__builtins__). I strongly disagree that it's "just" a regular module.

> So just call the module 'builtins', and then you can do
>
>     import builtins   # get the module with no magic happening
>
>     import mystuff as __builtins__ # change my builtin namespace
>
>     import builtins as __builtins__  # restore default builtin namespace

I'm still +1 on Ping's original proposal #3.

-- 
--Guido van Rossum (home page: http://www.python.org/~guido/)


More information about the Python-3000 mailing list