[Python-checkins] python/dist/src/Doc/lib libbltin.tex, 1.8,
1.8.52.1
fdrake at users.sourceforge.net
fdrake at users.sourceforge.net
Thu Dec 23 17:55:35 CET 2004
Update of /cvsroot/python/python/dist/src/Doc/lib
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv16308/lib
Modified Files:
Tag: release24-maint
libbltin.tex
Log Message:
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)
Index: libbltin.tex
===================================================================
RCS file: /cvsroot/python/python/dist/src/Doc/lib/libbltin.tex,v
retrieving revision 1.8
retrieving revision 1.8.52.1
diff -u -d -r1.8 -r1.8.52.1
--- libbltin.tex 23 Apr 1999 17:11:53 -0000 1.8
+++ libbltin.tex 23 Dec 2004 16:55:32 -0000 1.8.52.1
@@ -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.
More information about the Python-checkins
mailing list