diff options
-rw-r--r-- | Doc/lib/libbltin.tex | 43 |
1 files changed, 38 insertions, 5 deletions
diff --git a/Doc/lib/libbltin.tex b/Doc/lib/libbltin.tex index 5cc7626..f6abe25 100644 --- a/Doc/lib/libbltin.tex +++ b/Doc/lib/libbltin.tex @@ -1,11 +1,44 @@ \section{\module{__builtin__} --- - Built-in functions} + Built-in objects} \declaremodule[builtin]{builtin}{__builtin__} -\modulesynopsis{The set of built-in functions.} +\modulesynopsis{The module that provides the built-in namespace.} This module provides direct access to all `built-in' identifiers of -Python; e.g. \code{__builtin__.open} is the full name for the built-in -function \function{open()}. See section \ref{built-in-funcs}, ``Built-in -Functions.'' +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. |