# 2 `__builtin__` -- 組み込みオブジェクト

このモジュールはPythonの全ての「組み込み」識別子を直接アクセスするための ものです。例えば `__builtin__.open` は`open()`関数のための 全ての組み込み関数を表示します。 第2章, ``組み込みオブジェクト''も参照してください。

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

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

        # ...

実装の詳細に属することですが、ほとんどのモジュールでは `__builtins__` ("`s`" に注意) がグローバルの一部として 使えるようになっています。`__builtins__` の内容は通常このモジュール そのものか、またはこのモジュールの`__dict__` 属性です。 実装の詳細部分ということで、異なる Python の実装の下ではこのようになっていないかもしれません。