このモジュールは Python の全ての「組み込み」識別子に直接アクセスするためのものです。例えば __builtin__.open は組み込み関数 open() の完全な名前です。
通常このモジュールはほとんどのアプリケーションで明示的にアクセスされることはありませんが、組み込みの値と同じ名前のオブジェクトを提供するモジュールが同時にその名前の組み込みオブジェクトも必要とするような場合には有用です。たとえば、組み込みの open() をラップした open() という関数を実装したいモジュールがあったとすると、 __builtin__ モジュールは次のように直接的に使われます。
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()
# ...
CPython implementation detail:
ほとんどのモジュールではグローバル変数の一部として __builtins__ ('s' に注意) が利用できるようになっています。 __builtins__ の内容は通常 __builtin__ モジュールそのものか、あるいは __builtin__ モジュールの __dict__ 属性です。これは実装の詳細部分なので、異なる Python の実装では __builtins__ は使われていないこともあります。