Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 0a6864e

Browse files
committed
discuss how the __builtin__ module is normally used, and try to clarify the
difference between __builtins__ and __builtin__ (based on an email comment)
1 parent fb915fe commit 0a6864e

1 file changed

Lines changed: 38 additions & 5 deletions

File tree

Doc/lib/libbltin.tex

Lines changed: 38 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,44 @@
11
\section{\module{__builtin__} ---
2-
Built-in functions}
2+
Built-in objects}
33

44
\declaremodule[builtin]{builtin}{__builtin__}
5-
\modulesynopsis{The set of built-in functions.}
5+
\modulesynopsis{The module that provides the built-in namespace.}
66

77

88
This module provides direct access to all `built-in' identifiers of
9-
Python; e.g. \code{__builtin__.open} is the full name for the built-in
10-
function \function{open()}. See section \ref{built-in-funcs}, ``Built-in
11-
Functions.''
9+
Python; for example, \code{__builtin__.open} is the full name for the
10+
built-in function \function{open()}. See chapter~\ref{builtin},
11+
``Built-in Objects.''
12+
13+
This module is not normally accessed explicitly by most applications,
14+
but can be useful in modules that provide objects with the same name
15+
as a built-in value, but in which the built-in of that name is also
16+
needed. For example, in a module that wants to implement an
17+
\function{open()} function that wraps the built-in \function{open()},
18+
this module can be used directly:
19+
20+
\begin{verbatim}
21+
import __builtin__
22+
23+
def open(path):
24+
f = __builtin__.open(path, 'r')
25+
return UpperCaser(f)
26+
27+
class UpperCaser:
28+
'''Wrapper around a file that converts output to upper-case.'''
29+
30+
def __init__(self, f):
31+
self._f = f
32+
33+
def read(self, count=-1):
34+
return self._f.read(count).upper()
35+
36+
# ...
37+
\end{verbatim}
38+
39+
As an implementation detail, most modules have the name
40+
\code{__builtins__} (note the \character{s}) made available as part of
41+
their globals. The value of \code{__builtins__} is normally either
42+
this module or the value of this modules's \member{__dict__}
43+
attribute. Since this is an implementation detail, it may not be used
44+
by alternate implementations of Python.

0 commit comments

Comments
 (0)