\section{\module{__builtin__} ---
         組み込みオブジェクト}

\declaremodule[builtin]{builtin}{__builtin__}
\modulesynopsis{組み込み名前空間を提供するモジュール}

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

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

\begin{verbatim}
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()

    # ...
\end{verbatim}

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