17db96d56Sopenharmony_ci:mod:`builtins` --- Built-in objects
27db96d56Sopenharmony_ci====================================
37db96d56Sopenharmony_ci
47db96d56Sopenharmony_ci.. module:: builtins
57db96d56Sopenharmony_ci   :synopsis: The module that provides the built-in namespace.
67db96d56Sopenharmony_ci
77db96d56Sopenharmony_ci--------------
87db96d56Sopenharmony_ci
97db96d56Sopenharmony_ciThis module provides direct access to all 'built-in' identifiers of Python; for
107db96d56Sopenharmony_ciexample, ``builtins.open`` is the full name for the built-in function
117db96d56Sopenharmony_ci:func:`open`.  See :ref:`built-in-funcs` and :ref:`built-in-consts` for
127db96d56Sopenharmony_cidocumentation.
137db96d56Sopenharmony_ci
147db96d56Sopenharmony_ci
157db96d56Sopenharmony_ciThis module is not normally accessed explicitly by most applications, but can be
167db96d56Sopenharmony_ciuseful in modules that provide objects with the same name as a built-in value,
177db96d56Sopenharmony_cibut in which the built-in of that name is also needed.  For example, in a module
187db96d56Sopenharmony_cithat wants to implement an :func:`open` function that wraps the built-in
197db96d56Sopenharmony_ci:func:`open`, this module can be used directly::
207db96d56Sopenharmony_ci
217db96d56Sopenharmony_ci   import builtins
227db96d56Sopenharmony_ci
237db96d56Sopenharmony_ci   def open(path):
247db96d56Sopenharmony_ci       f = builtins.open(path, 'r')
257db96d56Sopenharmony_ci       return UpperCaser(f)
267db96d56Sopenharmony_ci
277db96d56Sopenharmony_ci   class UpperCaser:
287db96d56Sopenharmony_ci       '''Wrapper around a file that converts output to uppercase.'''
297db96d56Sopenharmony_ci
307db96d56Sopenharmony_ci       def __init__(self, f):
317db96d56Sopenharmony_ci           self._f = f
327db96d56Sopenharmony_ci
337db96d56Sopenharmony_ci       def read(self, count=-1):
347db96d56Sopenharmony_ci           return self._f.read(count).upper()
357db96d56Sopenharmony_ci
367db96d56Sopenharmony_ci       # ...
377db96d56Sopenharmony_ci
387db96d56Sopenharmony_ciAs an implementation detail, most modules have the name ``__builtins__`` made
397db96d56Sopenharmony_ciavailable as part of their globals.  The value of ``__builtins__`` is normally
407db96d56Sopenharmony_cieither this module or the value of this module's :attr:`~object.__dict__` attribute.
417db96d56Sopenharmony_ciSince this is an implementation detail, it may not be used by alternate
427db96d56Sopenharmony_ciimplementations of Python.
43