28.3. "__builtin__" — Objets natifs
***********************************

Ce module fournit un accès direct aux identifiants “natifs” de Python;
par exemple, "__builtin__.open" est le nom complet pour la fonction
native "open()". Voir Fonctions natives et Constantes natives pour
plus de documentation.

Ce module n’est normalement pas accédé explicitement par la plupart
des applications, mais peut être utile dans des modules qui exposent
des objets de même nom qu’une valeur native, mais pour qui le natif de
même nom est aussi nécessaire. Par exemple, dans un module qui
voudrait implémenter une fonction "open()" autour de la fonction
native "open()", ce module peut être utilisé directement :

   import __builtin__

   def open(path):
       f = __builtin__.open(path, 'r')
       return UpperCaser(f)

   class UpperCaser:
       '''Wrapper around a file that converts output to upper-case.'''

       def __init__(self, f):
           self._f = f

       def read(self, count=-1):
           return self._f.read(count).upper()

       # ...

**CPython implementation detail:** Most modules have the name
"__builtins__" (note the "'s'") made available as part of their
globals.  The value of "__builtins__" is normally either this module
or the value of this modules’s "__dict__" attribute.  Since this is an
implementation detail, it may not be used by alternate implementations
of Python.
