# 29.3. `builtins` — Objets natifs

Ce module fournit un accès direct aux identifiants “natifs” de Python; par exemple, `builtins.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 builtins

    def open(path):
        f = builtins.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()

        # ...

Spécificité de l’implémentation: La plupart des modules ont `__builtins__` dans leurs globales. La valeur de `__builtins__` est classiquement soit ce module, soit la valeur de l’attribut `__dict__` du module. Puisque c’est une spécificité de CPython, ce n’est peut-être pas utilisé par toutes les autres implémentations.