Georg Brandl | 1a3284e | 2007-12-02 09:40:06 +0000 | [diff] [blame] | 1 | :mod:`builtins` --- Built-in objects |
| 2 | ==================================== |
Georg Brandl | 116aa62 | 2007-08-15 14:28:22 +0000 | [diff] [blame] | 3 | |
Georg Brandl | 1a3284e | 2007-12-02 09:40:06 +0000 | [diff] [blame] | 4 | .. module:: builtins |
Georg Brandl | 116aa62 | 2007-08-15 14:28:22 +0000 | [diff] [blame] | 5 | :synopsis: The module that provides the built-in namespace. |
| 6 | |
| 7 | |
| 8 | This module provides direct access to all 'built-in' identifiers of Python; for |
Georg Brandl | 1a3284e | 2007-12-02 09:40:06 +0000 | [diff] [blame] | 9 | example, ``builtins.open`` is the full name for the built-in function |
Ezio Melotti | b1493b8 | 2010-03-23 00:32:49 +0000 | [diff] [blame] | 10 | :func:`open`. |
Georg Brandl | 116aa62 | 2007-08-15 14:28:22 +0000 | [diff] [blame] | 11 | |
| 12 | This module is not normally accessed explicitly by most applications, but can be |
| 13 | useful in modules that provide objects with the same name as a built-in value, |
| 14 | but in which the built-in of that name is also needed. For example, in a module |
| 15 | that wants to implement an :func:`open` function that wraps the built-in |
| 16 | :func:`open`, this module can be used directly:: |
| 17 | |
Georg Brandl | 1a3284e | 2007-12-02 09:40:06 +0000 | [diff] [blame] | 18 | import builtins |
Georg Brandl | 116aa62 | 2007-08-15 14:28:22 +0000 | [diff] [blame] | 19 | |
| 20 | def open(path): |
Georg Brandl | 1a3284e | 2007-12-02 09:40:06 +0000 | [diff] [blame] | 21 | f = builtins.open(path, 'r') |
Georg Brandl | 116aa62 | 2007-08-15 14:28:22 +0000 | [diff] [blame] | 22 | return UpperCaser(f) |
| 23 | |
| 24 | class UpperCaser: |
| 25 | '''Wrapper around a file that converts output to upper-case.''' |
| 26 | |
| 27 | def __init__(self, f): |
| 28 | self._f = f |
| 29 | |
| 30 | def read(self, count=-1): |
| 31 | return self._f.read(count).upper() |
| 32 | |
| 33 | # ... |
| 34 | |
Georg Brandl | 62f52c4 | 2010-11-26 12:08:19 +0000 | [diff] [blame] | 35 | As an implementation detail, most modules have the name ``__builtins__`` made |
| 36 | available as part of their globals. The value of ``__builtins__`` is normally |
| 37 | either this module or the value of this modules's :attr:`__dict__` attribute. |
| 38 | Since this is an implementation detail, it may not be used by alternate |
| 39 | implementations of Python. |