diff options
author | Fred Drake <fdrake@acm.org> | 2004-12-23 16:55:32 (GMT) |
---|---|---|
committer | Fred Drake <fdrake@acm.org> | 2004-12-23 16:55:32 (GMT) |
commit | 2a3a7ae9e14bee5795004d0b7708d2b6a8fd46fe (patch) | |
tree | 7db09b2abc58528ad8d449e13e21aedc776948bd | |
parent | 8e1ba59add1cc87b7b0a10ba1c568653b5aa2076 (diff) | |
download | cpython-2a3a7ae9e14bee5795004d0b7708d2b6a8fd46fe.zip cpython-2a3a7ae9e14bee5795004d0b7708d2b6a8fd46fe.tar.gz cpython-2a3a7ae9e14bee5795004d0b7708d2b6a8fd46fe.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)
(backported from trunk revision 1.9)
-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. |