Safe to import __builtin__ ?

Robert Kern robert.kern at gmail.com
Wed Jun 3 19:11:51 EDT 2009


On 2009-06-03 17:54, Steven D'Aprano wrote:
> On Wed, 03 Jun 2009 18:57:29 +0000, Benjamin Peterson wrote:
>
>> mrstevegross<mrstevegross<at>  gmail.com>  writes:
>>
>>
>>> Is it generally safe to explicitly import __builtin__ in python? That
>>> is, my code reads like this:
>> ...
>>> It seems like it should be a safe import, but I just want to make sure.
>> Yes, that's fine. I'm not sure why you don't just use type(), though.
>
> I'm not sure why you think type() is a substitute for __builtin__. Here's
> a typical use-case for __builtin__:
>
>
> import __builtin__
> def map(*args):  # shadow a built-in
>      # pre-processing goes here
>      result = __builtin__.map(*args)
>      # post-processing goes here
>      return result
>
>
> How does type() help you?

It doesn't in that sense. The example that Benjamin elided used 
__builtin__.type() for no discernible reason (unlike your example which creates 
a shadow function that overrides the builtin version). Benjamin was asking what 
the motivation was, since it was not evident.

-- 
Robert Kern

"I have come to believe that the whole world is an enigma, a harmless enigma
  that is made terrible by our own mad attempt to interpret it as though it had
  an underlying truth."
   -- Umberto Eco




More information about the Python-list mailing list