28.3. "__builtin__" --- 組み込みオブジェクト
********************************************

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

通常このモジュールはほとんどのアプリケーションで明示的にアクセスされる
ことはありませんが、組み込みの値と同じ名前のオブジェクトを提供するモジ
ュールが同時にその名前の組み込みオブジェクトも必要とするような場合には
有用です。たとえば、組み込みの "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__" の内容
は通常 "__builtin__" モジュールそのものか、あるいは "__builtin__" モジ
ュールの "__dict__" 属性です。これは実装の詳細部分なので、異なる
Python の実装では "__builtins__" は使われていないこともあります。
