diff options
author | Fred Drake <fdrake@acm.org> | 2004-12-23 16:50:36 (GMT) |
---|---|---|
committer | Fred Drake <fdrake@acm.org> | 2004-12-23 16:50:36 (GMT) |
commit | 0a6864ecc5d0188c5dcaf2b5e7fb725668b13749 (patch) | |
tree | 264208dfa7430e9f825f17bd3e612b23002e4f20 | |
parent | fb915fe81230a0ce6d74590d7edf56d0b0f33c3d (diff) | |
download | cpython-0a6864ecc5d0188c5dcaf2b5e7fb725668b13749.zip cpython-0a6864ecc5d0188c5dcaf2b5e7fb725668b13749.tar.gz cpython-0a6864ecc5d0188c5dcaf2b5e7fb725668b13749.tar.bz2 |
discuss how the __builtin__ module is normally used, and try to clarify the
difference between __builtins__ and __builtin__ (based on an email comment)
-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. |