# 29.3. `builtins` --- 組み込みオブジェクト

このモジュールは Python の全ての「組み込み」識別子に直接アクセスするためのものです。例えば `builtins.open` は組み込み関数 `open()` の完全な名前です。ドキュメントは 組み込み関数 と 組み込み定数 を参照してください。

通常このモジュールはほとんどのアプリケーションで明示的にアクセスされることはありませんが、組み込みの値と同じ名前のオブジェクトを提供するモジュールが同時にその名前の組み込みオブジェクトも必要とするような場合には有用です。たとえば、組み込みの `open()` をラップした `open()` という関数を実装したいモジュールがあったとすると、このモジュールは次のように直接的に使われます:

    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()

        # ...

ほとんどのモジュールではグローバル変数の一部として `__builtins__` が利用できるようになっています。 `__builtins__` の内容は通常このモジュールそのものか、あるいはこのモジュールの `__dict__` 属性です。これは実装の詳細部分なので、異なる Python の実装では `__builtins__` は使われていないこともあります。