ref: 1fe3143e4c43ce2c74e0cfdd70b1bd556bbb9e1b
dir: /sys/src/cmd/python/Doc/lib/libbltin.tex/
\section{\module{__builtin__} --- Built-in objects} \declaremodule[builtin]{builtin}{__builtin__} \modulesynopsis{The module that provides the built-in namespace.} This module provides direct access to all `built-in' identifiers of Python; for example, \code{__builtin__.open} is the full name for the built-in function \function{open()}. See chapter~\ref{builtin}, ``Built-in Objects.'' This module is not normally accessed explicitly by most applications, but can be useful in modules that provide objects with the same name as a built-in value, but in which the built-in of that name is also needed. For example, in a module that wants to implement an \function{open()} function that wraps the built-in \function{open()}, this module can be used directly: \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} As an implementation detail, most modules have the name \code{__builtins__} (note the \character{s}) made available as part of their globals. The value of \code{__builtins__} is normally either this module or the value of this modules's \member{__dict__} attribute. Since this is an implementation detail, it may not be used by alternate implementations of Python.