• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1.. XXX document all delegations to __special__ methods
2.. _built-in-funcs:
3
4Built-in Functions
5==================
6
7The Python interpreter has a number of functions and types built into it that
8are always available.  They are listed here in alphabetical order.
9
10===================  =================  ==================  ==================  ====================
11..                   ..                 Built-in Functions  ..                  ..
12===================  =================  ==================  ==================  ====================
13:func:`abs`          :func:`delattr`    :func:`hash`        |func-memoryview|_  |func-set|_
14:func:`all`          |func-dict|_       :func:`help`        :func:`min`         :func:`setattr`
15:func:`any`          :func:`dir`        :func:`hex`         :func:`next`        :func:`slice`
16:func:`ascii`        :func:`divmod`     :func:`id`          :func:`object`      :func:`sorted`
17:func:`bin`          :func:`enumerate`  :func:`input`       :func:`oct`         :func:`staticmethod`
18:func:`bool`         :func:`eval`       :func:`int`         :func:`open`        |func-str|_
19:func:`breakpoint`   :func:`exec`       :func:`isinstance`  :func:`ord`         :func:`sum`
20|func-bytearray|_    :func:`filter`     :func:`issubclass`  :func:`pow`         :func:`super`
21|func-bytes|_        :func:`float`      :func:`iter`        :func:`print`       |func-tuple|_
22:func:`callable`     :func:`format`     :func:`len`         :func:`property`    :func:`type`
23:func:`chr`          |func-frozenset|_  |func-list|_        |func-range|_       :func:`vars`
24:func:`classmethod`  :func:`getattr`    :func:`locals`      :func:`repr`        :func:`zip`
25:func:`compile`      :func:`globals`    :func:`map`         :func:`reversed`    :func:`__import__`
26:func:`complex`      :func:`hasattr`    :func:`max`         :func:`round`
27===================  =================  ==================  ==================  ====================
28
29.. using :func:`dict` would create a link to another page, so local targets are
30   used, with replacement texts to make the output in the table consistent
31
32.. |func-dict| replace:: ``dict()``
33.. |func-frozenset| replace:: ``frozenset()``
34.. |func-memoryview| replace:: ``memoryview()``
35.. |func-set| replace:: ``set()``
36.. |func-list| replace:: ``list()``
37.. |func-str| replace:: ``str()``
38.. |func-tuple| replace:: ``tuple()``
39.. |func-range| replace:: ``range()``
40.. |func-bytearray| replace:: ``bytearray()``
41.. |func-bytes| replace:: ``bytes()``
42
43.. function:: abs(x)
44
45   Return the absolute value of a number.  The argument may be an
46   integer or a floating point number.  If the argument is a complex number, its
47   magnitude is returned. If *x* defines :meth:`__abs__`,
48   ``abs(x)`` returns ``x.__abs__()``.
49
50
51.. function:: all(iterable)
52
53   Return ``True`` if all elements of the *iterable* are true (or if the iterable
54   is empty).  Equivalent to::
55
56      def all(iterable):
57          for element in iterable:
58              if not element:
59                  return False
60          return True
61
62
63.. function:: any(iterable)
64
65   Return ``True`` if any element of the *iterable* is true.  If the iterable
66   is empty, return ``False``.  Equivalent to::
67
68      def any(iterable):
69          for element in iterable:
70              if element:
71                  return True
72          return False
73
74
75.. function:: ascii(object)
76
77   As :func:`repr`, return a string containing a printable representation of an
78   object, but escape the non-ASCII characters in the string returned by
79   :func:`repr` using ``\x``, ``\u`` or ``\U`` escapes.  This generates a string
80   similar to that returned by :func:`repr` in Python 2.
81
82
83.. function:: bin(x)
84
85   Convert an integer number to a binary string prefixed with "0b". The result
86   is a valid Python expression. If *x* is not a Python :class:`int` object, it
87   has to define an :meth:`__index__` method that returns an integer. Some
88   examples:
89
90      >>> bin(3)
91      '0b11'
92      >>> bin(-10)
93      '-0b1010'
94
95   If prefix "0b" is desired or not, you can use either of the following ways.
96
97      >>> format(14, '#b'), format(14, 'b')
98      ('0b1110', '1110')
99      >>> f'{14:#b}', f'{14:b}'
100      ('0b1110', '1110')
101
102   See also :func:`format` for more information.
103
104
105.. class:: bool([x])
106
107   Return a Boolean value, i.e. one of ``True`` or ``False``.  *x* is converted
108   using the standard :ref:`truth testing procedure <truth>`.  If *x* is false
109   or omitted, this returns ``False``; otherwise it returns ``True``.  The
110   :class:`bool` class is a subclass of :class:`int` (see :ref:`typesnumeric`).
111   It cannot be subclassed further.  Its only instances are ``False`` and
112   ``True`` (see :ref:`bltin-boolean-values`).
113
114   .. index:: pair: Boolean; type
115
116   .. versionchanged:: 3.7
117      *x* is now a positional-only parameter.
118
119.. function:: breakpoint(*args, **kws)
120
121   This function drops you into the debugger at the call site.  Specifically,
122   it calls :func:`sys.breakpointhook`, passing ``args`` and ``kws`` straight
123   through.  By default, ``sys.breakpointhook()`` calls
124   :func:`pdb.set_trace()` expecting no arguments.  In this case, it is
125   purely a convenience function so you don't have to explicitly import
126   :mod:`pdb` or type as much code to enter the debugger.  However,
127   :func:`sys.breakpointhook` can be set to some other function and
128   :func:`breakpoint` will automatically call that, allowing you to drop into
129   the debugger of choice.
130
131   .. audit-event:: builtins.breakpoint breakpointhook breakpoint
132
133   .. versionadded:: 3.7
134
135.. _func-bytearray:
136.. class:: bytearray([source[, encoding[, errors]]])
137   :noindex:
138
139   Return a new array of bytes.  The :class:`bytearray` class is a mutable
140   sequence of integers in the range 0 <= x < 256.  It has most of the usual
141   methods of mutable sequences, described in :ref:`typesseq-mutable`, as well
142   as most methods that the :class:`bytes` type has, see :ref:`bytes-methods`.
143
144   The optional *source* parameter can be used to initialize the array in a few
145   different ways:
146
147   * If it is a *string*, you must also give the *encoding* (and optionally,
148     *errors*) parameters; :func:`bytearray` then converts the string to
149     bytes using :meth:`str.encode`.
150
151   * If it is an *integer*, the array will have that size and will be
152     initialized with null bytes.
153
154   * If it is an object conforming to the *buffer* interface, a read-only buffer
155     of the object will be used to initialize the bytes array.
156
157   * If it is an *iterable*, it must be an iterable of integers in the range
158     ``0 <= x < 256``, which are used as the initial contents of the array.
159
160   Without an argument, an array of size 0 is created.
161
162   See also :ref:`binaryseq` and :ref:`typebytearray`.
163
164
165.. _func-bytes:
166.. class:: bytes([source[, encoding[, errors]]])
167   :noindex:
168
169   Return a new "bytes" object, which is an immutable sequence of integers in
170   the range ``0 <= x < 256``.  :class:`bytes` is an immutable version of
171   :class:`bytearray` -- it has the same non-mutating methods and the same
172   indexing and slicing behavior.
173
174   Accordingly, constructor arguments are interpreted as for :func:`bytearray`.
175
176   Bytes objects can also be created with literals, see :ref:`strings`.
177
178   See also :ref:`binaryseq`, :ref:`typebytes`, and :ref:`bytes-methods`.
179
180
181.. function:: callable(object)
182
183   Return :const:`True` if the *object* argument appears callable,
184   :const:`False` if not.  If this returns ``True``, it is still possible that a
185   call fails, but if it is ``False``, calling *object* will never succeed.
186   Note that classes are callable (calling a class returns a new instance);
187   instances are callable if their class has a :meth:`__call__` method.
188
189   .. versionadded:: 3.2
190      This function was first removed in Python 3.0 and then brought back
191      in Python 3.2.
192
193
194.. function:: chr(i)
195
196   Return the string representing a character whose Unicode code point is the
197   integer *i*.  For example, ``chr(97)`` returns the string ``'a'``, while
198   ``chr(8364)`` returns the string ``'€'``. This is the inverse of :func:`ord`.
199
200   The valid range for the argument is from 0 through 1,114,111 (0x10FFFF in
201   base 16).  :exc:`ValueError` will be raised if *i* is outside that range.
202
203
204.. decorator:: classmethod
205
206   Transform a method into a class method.
207
208   A class method receives the class as implicit first argument, just like an
209   instance method receives the instance. To declare a class method, use this
210   idiom::
211
212      class C:
213          @classmethod
214          def f(cls, arg1, arg2, ...): ...
215
216   The ``@classmethod`` form is a function :term:`decorator` -- see
217   :ref:`function` for details.
218
219   A class method can be called either on the class (such as ``C.f()``) or on an instance (such
220   as ``C().f()``).  The instance is ignored except for its class. If a class
221   method is called for a derived class, the derived class object is passed as the
222   implied first argument.
223
224   Class methods are different than C++ or Java static methods. If you want those,
225   see :func:`staticmethod`.
226
227   For more information on class methods, see :ref:`types`.
228
229
230.. function:: compile(source, filename, mode, flags=0, dont_inherit=False, optimize=-1)
231
232   Compile the *source* into a code or AST object.  Code objects can be executed
233   by :func:`exec` or :func:`eval`.  *source* can either be a normal string, a
234   byte string, or an AST object.  Refer to the :mod:`ast` module documentation
235   for information on how to work with AST objects.
236
237   The *filename* argument should give the file from which the code was read;
238   pass some recognizable value if it wasn't read from a file (``'<string>'`` is
239   commonly used).
240
241   The *mode* argument specifies what kind of code must be compiled; it can be
242   ``'exec'`` if *source* consists of a sequence of statements, ``'eval'`` if it
243   consists of a single expression, or ``'single'`` if it consists of a single
244   interactive statement (in the latter case, expression statements that
245   evaluate to something other than ``None`` will be printed).
246
247   The optional arguments *flags* and *dont_inherit* control which :ref:`future
248   statements <future>` affect the compilation of *source*.  If neither
249   is present (or both are zero) the code is compiled with those future
250   statements that are in effect in the code that is calling :func:`compile`.  If the
251   *flags* argument is given and *dont_inherit* is not (or is zero) then the
252   future statements specified by the *flags* argument are used in addition to
253   those that would be used anyway. If *dont_inherit* is a non-zero integer then
254   the *flags* argument is it -- the future statements in effect around the call
255   to compile are ignored.
256
257   Future statements are specified by bits which can be bitwise ORed together to
258   specify multiple statements.  The bitfield required to specify a given feature
259   can be found as the :attr:`~__future__._Feature.compiler_flag` attribute on
260   the :class:`~__future__._Feature` instance in the :mod:`__future__` module.
261
262   The optional argument *flags* also controls whether the compiled source is
263   allowed to contain top-level ``await``, ``async for`` and ``async with``.
264   When the bit ``ast.PyCF_ALLOW_TOP_LEVEL_AWAIT`` is set, the return code
265   object has ``CO_COROUTINE`` set in ``co_code``, and can be interactively
266   executed via ``await eval(code_object)``.
267
268   The argument *optimize* specifies the optimization level of the compiler; the
269   default value of ``-1`` selects the optimization level of the interpreter as
270   given by :option:`-O` options.  Explicit levels are ``0`` (no optimization;
271   ``__debug__`` is true), ``1`` (asserts are removed, ``__debug__`` is false)
272   or ``2`` (docstrings are removed too).
273
274   This function raises :exc:`SyntaxError` if the compiled source is invalid,
275   and :exc:`ValueError` if the source contains null bytes.
276
277   If you want to parse Python code into its AST representation, see
278   :func:`ast.parse`.
279
280   .. audit-event:: compile source,filename compile
281
282      Raises an :ref:`auditing event <auditing>` ``compile`` with arguments
283      ``source`` and ``filename``. This event may also be raised by implicit
284      compilation.
285
286   .. note::
287
288      When compiling a string with multi-line code in ``'single'`` or
289      ``'eval'`` mode, input must be terminated by at least one newline
290      character.  This is to facilitate detection of incomplete and complete
291      statements in the :mod:`code` module.
292
293   .. warning::
294
295      It is possible to crash the Python interpreter with a
296      sufficiently large/complex string when compiling to an AST
297      object due to stack depth limitations in Python's AST compiler.
298
299   .. versionchanged:: 3.2
300      Allowed use of Windows and Mac newlines.  Also input in ``'exec'`` mode
301      does not have to end in a newline anymore.  Added the *optimize* parameter.
302
303   .. versionchanged:: 3.5
304      Previously, :exc:`TypeError` was raised when null bytes were encountered
305      in *source*.
306
307   .. versionadded:: 3.8
308      ``ast.PyCF_ALLOW_TOP_LEVEL_AWAIT`` can now be passed in flags to enable
309      support for top-level ``await``, ``async for``, and ``async with``.
310
311
312.. class:: complex([real[, imag]])
313
314   Return a complex number with the value *real* + *imag*\*1j or convert a string
315   or number to a complex number.  If the first parameter is a string, it will
316   be interpreted as a complex number and the function must be called without a
317   second parameter.  The second parameter can never be a string. Each argument
318   may be any numeric type (including complex).  If *imag* is omitted, it
319   defaults to zero and the constructor serves as a numeric conversion like
320   :class:`int` and :class:`float`.  If both arguments are omitted, returns
321   ``0j``.
322
323   For a general Python object ``x``, ``complex(x)`` delegates to
324   ``x.__complex__()``.  If ``__complex__()`` is not defined then it falls back
325   to :meth:`__float__`.  If ``__float__()`` is not defined then it falls back
326   to :meth:`__index__`.
327
328   .. note::
329
330      When converting from a string, the string must not contain whitespace
331      around the central ``+`` or ``-`` operator.  For example,
332      ``complex('1+2j')`` is fine, but ``complex('1 + 2j')`` raises
333      :exc:`ValueError`.
334
335   The complex type is described in :ref:`typesnumeric`.
336
337   .. versionchanged:: 3.6
338      Grouping digits with underscores as in code literals is allowed.
339
340   .. versionchanged:: 3.8
341      Falls back to :meth:`__index__` if :meth:`__complex__` and
342      :meth:`__float__` are not defined.
343
344
345.. function:: delattr(object, name)
346
347   This is a relative of :func:`setattr`.  The arguments are an object and a
348   string.  The string must be the name of one of the object's attributes.  The
349   function deletes the named attribute, provided the object allows it.  For
350   example, ``delattr(x, 'foobar')`` is equivalent to ``del x.foobar``.
351
352
353.. _func-dict:
354.. class:: dict(**kwarg)
355           dict(mapping, **kwarg)
356           dict(iterable, **kwarg)
357   :noindex:
358
359   Create a new dictionary.  The :class:`dict` object is the dictionary class.
360   See :class:`dict` and :ref:`typesmapping` for documentation about this class.
361
362   For other containers see the built-in :class:`list`, :class:`set`, and
363   :class:`tuple` classes, as well as the :mod:`collections` module.
364
365
366.. function:: dir([object])
367
368   Without arguments, return the list of names in the current local scope.  With an
369   argument, attempt to return a list of valid attributes for that object.
370
371   If the object has a method named :meth:`__dir__`, this method will be called and
372   must return the list of attributes. This allows objects that implement a custom
373   :func:`__getattr__` or :func:`__getattribute__` function to customize the way
374   :func:`dir` reports their attributes.
375
376   If the object does not provide :meth:`__dir__`, the function tries its best to
377   gather information from the object's :attr:`~object.__dict__` attribute, if defined, and
378   from its type object.  The resulting list is not necessarily complete, and may
379   be inaccurate when the object has a custom :func:`__getattr__`.
380
381   The default :func:`dir` mechanism behaves differently with different types of
382   objects, as it attempts to produce the most relevant, rather than complete,
383   information:
384
385   * If the object is a module object, the list contains the names of the module's
386     attributes.
387
388   * If the object is a type or class object, the list contains the names of its
389     attributes, and recursively of the attributes of its bases.
390
391   * Otherwise, the list contains the object's attributes' names, the names of its
392     class's attributes, and recursively of the attributes of its class's base
393     classes.
394
395   The resulting list is sorted alphabetically.  For example:
396
397      >>> import struct
398      >>> dir()   # show the names in the module namespace  # doctest: +SKIP
399      ['__builtins__', '__name__', 'struct']
400      >>> dir(struct)   # show the names in the struct module # doctest: +SKIP
401      ['Struct', '__all__', '__builtins__', '__cached__', '__doc__', '__file__',
402       '__initializing__', '__loader__', '__name__', '__package__',
403       '_clearcache', 'calcsize', 'error', 'pack', 'pack_into',
404       'unpack', 'unpack_from']
405      >>> class Shape:
406      ...     def __dir__(self):
407      ...         return ['area', 'perimeter', 'location']
408      >>> s = Shape()
409      >>> dir(s)
410      ['area', 'location', 'perimeter']
411
412   .. note::
413
414      Because :func:`dir` is supplied primarily as a convenience for use at an
415      interactive prompt, it tries to supply an interesting set of names more
416      than it tries to supply a rigorously or consistently defined set of names,
417      and its detailed behavior may change across releases.  For example,
418      metaclass attributes are not in the result list when the argument is a
419      class.
420
421
422.. function:: divmod(a, b)
423
424   Take two (non complex) numbers as arguments and return a pair of numbers
425   consisting of their quotient and remainder when using integer division.  With
426   mixed operand types, the rules for binary arithmetic operators apply.  For
427   integers, the result is the same as ``(a // b, a % b)``. For floating point
428   numbers the result is ``(q, a % b)``, where *q* is usually ``math.floor(a /
429   b)`` but may be 1 less than that.  In any case ``q * b + a % b`` is very
430   close to *a*, if ``a % b`` is non-zero it has the same sign as *b*, and ``0
431   <= abs(a % b) < abs(b)``.
432
433
434.. function:: enumerate(iterable, start=0)
435
436   Return an enumerate object. *iterable* must be a sequence, an
437   :term:`iterator`, or some other object which supports iteration.
438   The :meth:`~iterator.__next__` method of the iterator returned by
439   :func:`enumerate` returns a tuple containing a count (from *start* which
440   defaults to 0) and the values obtained from iterating over *iterable*.
441
442      >>> seasons = ['Spring', 'Summer', 'Fall', 'Winter']
443      >>> list(enumerate(seasons))
444      [(0, 'Spring'), (1, 'Summer'), (2, 'Fall'), (3, 'Winter')]
445      >>> list(enumerate(seasons, start=1))
446      [(1, 'Spring'), (2, 'Summer'), (3, 'Fall'), (4, 'Winter')]
447
448   Equivalent to::
449
450      def enumerate(sequence, start=0):
451          n = start
452          for elem in sequence:
453              yield n, elem
454              n += 1
455
456
457.. function:: eval(expression[, globals[, locals]])
458
459   The arguments are a string and optional globals and locals.  If provided,
460   *globals* must be a dictionary.  If provided, *locals* can be any mapping
461   object.
462
463   The *expression* argument is parsed and evaluated as a Python expression
464   (technically speaking, a condition list) using the *globals* and *locals*
465   dictionaries as global and local namespace.  If the *globals* dictionary is
466   present and does not contain a value for the key ``__builtins__``, a
467   reference to the dictionary of the built-in module :mod:`builtins` is
468   inserted under that key before *expression* is parsed.  This means that
469   *expression* normally has full access to the standard :mod:`builtins`
470   module and restricted environments are propagated.  If the *locals*
471   dictionary is omitted it defaults to the *globals* dictionary.  If both
472   dictionaries are omitted, the expression is executed with the *globals* and
473   *locals* in the environment where :func:`eval` is called.  Note, *eval()*
474   does not have access to the :term:`nested scopes <nested scope>` (non-locals) in the
475   enclosing environment.
476
477   The return value is the result of
478   the evaluated expression. Syntax errors are reported as exceptions.  Example:
479
480      >>> x = 1
481      >>> eval('x+1')
482      2
483
484   This function can also be used to execute arbitrary code objects (such as
485   those created by :func:`compile`).  In this case pass a code object instead
486   of a string.  If the code object has been compiled with ``'exec'`` as the
487   *mode* argument, :func:`eval`\'s return value will be ``None``.
488
489   Hints: dynamic execution of statements is supported by the :func:`exec`
490   function.  The :func:`globals` and :func:`locals` functions
491   returns the current global and local dictionary, respectively, which may be
492   useful to pass around for use by :func:`eval` or :func:`exec`.
493
494   See :func:`ast.literal_eval` for a function that can safely evaluate strings
495   with expressions containing only literals.
496
497   .. audit-event:: exec code_object eval
498
499      Raises an :ref:`auditing event <auditing>` ``exec`` with the code object
500      as the argument. Code compilation events may also be raised.
501
502.. index:: builtin: exec
503
504.. function:: exec(object[, globals[, locals]])
505
506   This function supports dynamic execution of Python code. *object* must be
507   either a string or a code object.  If it is a string, the string is parsed as
508   a suite of Python statements which is then executed (unless a syntax error
509   occurs). [#]_ If it is a code object, it is simply executed.  In all cases,
510   the code that's executed is expected to be valid as file input (see the
511   section "File input" in the Reference Manual). Be aware that the
512   :keyword:`return` and :keyword:`yield` statements may not be used outside of
513   function definitions even within the context of code passed to the
514   :func:`exec` function. The return value is ``None``.
515
516   In all cases, if the optional parts are omitted, the code is executed in the
517   current scope.  If only *globals* is provided, it must be a dictionary
518   (and not a subclass of dictionary), which
519   will be used for both the global and the local variables.  If *globals* and
520   *locals* are given, they are used for the global and local variables,
521   respectively.  If provided, *locals* can be any mapping object.  Remember
522   that at module level, globals and locals are the same dictionary. If exec
523   gets two separate objects as *globals* and *locals*, the code will be
524   executed as if it were embedded in a class definition.
525
526   If the *globals* dictionary does not contain a value for the key
527   ``__builtins__``, a reference to the dictionary of the built-in module
528   :mod:`builtins` is inserted under that key.  That way you can control what
529   builtins are available to the executed code by inserting your own
530   ``__builtins__`` dictionary into *globals* before passing it to :func:`exec`.
531
532   .. audit-event:: exec code_object exec
533
534      Raises an :ref:`auditing event <auditing>` ``exec`` with the code object
535      as the argument. Code compilation events may also be raised.
536
537   .. note::
538
539      The built-in functions :func:`globals` and :func:`locals` return the current
540      global and local dictionary, respectively, which may be useful to pass around
541      for use as the second and third argument to :func:`exec`.
542
543   .. note::
544
545      The default *locals* act as described for function :func:`locals` below:
546      modifications to the default *locals* dictionary should not be attempted.
547      Pass an explicit *locals* dictionary if you need to see effects of the
548      code on *locals* after function :func:`exec` returns.
549
550
551.. function:: filter(function, iterable)
552
553   Construct an iterator from those elements of *iterable* for which *function*
554   returns true.  *iterable* may be either a sequence, a container which
555   supports iteration, or an iterator.  If *function* is ``None``, the identity
556   function is assumed, that is, all elements of *iterable* that are false are
557   removed.
558
559   Note that ``filter(function, iterable)`` is equivalent to the generator
560   expression ``(item for item in iterable if function(item))`` if function is
561   not ``None`` and ``(item for item in iterable if item)`` if function is
562   ``None``.
563
564   See :func:`itertools.filterfalse` for the complementary function that returns
565   elements of *iterable* for which *function* returns false.
566
567
568.. class:: float([x])
569
570   .. index::
571      single: NaN
572      single: Infinity
573
574   Return a floating point number constructed from a number or string *x*.
575
576   If the argument is a string, it should contain a decimal number, optionally
577   preceded by a sign, and optionally embedded in whitespace.  The optional
578   sign may be ``'+'`` or ``'-'``; a ``'+'`` sign has no effect on the value
579   produced.  The argument may also be a string representing a NaN
580   (not-a-number), or a positive or negative infinity.  More precisely, the
581   input must conform to the following grammar after leading and trailing
582   whitespace characters are removed:
583
584   .. productionlist::
585      sign: "+" | "-"
586      infinity: "Infinity" | "inf"
587      nan: "nan"
588      numeric_value: `floatnumber` | `infinity` | `nan`
589      numeric_string: [`sign`] `numeric_value`
590
591   Here ``floatnumber`` is the form of a Python floating-point literal,
592   described in :ref:`floating`.  Case is not significant, so, for example,
593   "inf", "Inf", "INFINITY" and "iNfINity" are all acceptable spellings for
594   positive infinity.
595
596   Otherwise, if the argument is an integer or a floating point number, a
597   floating point number with the same value (within Python's floating point
598   precision) is returned.  If the argument is outside the range of a Python
599   float, an :exc:`OverflowError` will be raised.
600
601   For a general Python object ``x``, ``float(x)`` delegates to
602   ``x.__float__()``.  If ``__float__()`` is not defined then it falls back
603   to :meth:`__index__`.
604
605   If no argument is given, ``0.0`` is returned.
606
607   Examples::
608
609      >>> float('+1.23')
610      1.23
611      >>> float('   -12345\n')
612      -12345.0
613      >>> float('1e-003')
614      0.001
615      >>> float('+1E6')
616      1000000.0
617      >>> float('-Infinity')
618      -inf
619
620   The float type is described in :ref:`typesnumeric`.
621
622   .. versionchanged:: 3.6
623      Grouping digits with underscores as in code literals is allowed.
624
625   .. versionchanged:: 3.7
626      *x* is now a positional-only parameter.
627
628   .. versionchanged:: 3.8
629      Falls back to :meth:`__index__` if :meth:`__float__` is not defined.
630
631
632.. index::
633   single: __format__
634   single: string; format() (built-in function)
635
636.. function:: format(value[, format_spec])
637
638   Convert a *value* to a "formatted" representation, as controlled by
639   *format_spec*.  The interpretation of *format_spec* will depend on the type
640   of the *value* argument, however there is a standard formatting syntax that
641   is used by most built-in types: :ref:`formatspec`.
642
643   The default *format_spec* is an empty string which usually gives the same
644   effect as calling :func:`str(value) <str>`.
645
646   A call to ``format(value, format_spec)`` is translated to
647   ``type(value).__format__(value, format_spec)`` which bypasses the instance
648   dictionary when searching for the value's :meth:`__format__` method.  A
649   :exc:`TypeError` exception is raised if the method search reaches
650   :mod:`object` and the *format_spec* is non-empty, or if either the
651   *format_spec* or the return value are not strings.
652
653   .. versionchanged:: 3.4
654      ``object().__format__(format_spec)`` raises :exc:`TypeError`
655      if *format_spec* is not an empty string.
656
657
658.. _func-frozenset:
659.. class:: frozenset([iterable])
660   :noindex:
661
662   Return a new :class:`frozenset` object, optionally with elements taken from
663   *iterable*.  ``frozenset`` is a built-in class.  See :class:`frozenset` and
664   :ref:`types-set` for documentation about this class.
665
666   For other containers see the built-in :class:`set`, :class:`list`,
667   :class:`tuple`, and :class:`dict` classes, as well as the :mod:`collections`
668   module.
669
670
671.. function:: getattr(object, name[, default])
672
673   Return the value of the named attribute of *object*.  *name* must be a string.
674   If the string is the name of one of the object's attributes, the result is the
675   value of that attribute.  For example, ``getattr(x, 'foobar')`` is equivalent to
676   ``x.foobar``.  If the named attribute does not exist, *default* is returned if
677   provided, otherwise :exc:`AttributeError` is raised.
678
679
680.. function:: globals()
681
682   Return a dictionary representing the current global symbol table. This is always
683   the dictionary of the current module (inside a function or method, this is the
684   module where it is defined, not the module from which it is called).
685
686
687.. function:: hasattr(object, name)
688
689   The arguments are an object and a string.  The result is ``True`` if the
690   string is the name of one of the object's attributes, ``False`` if not. (This
691   is implemented by calling ``getattr(object, name)`` and seeing whether it
692   raises an :exc:`AttributeError` or not.)
693
694
695.. function:: hash(object)
696
697   Return the hash value of the object (if it has one).  Hash values are
698   integers.  They are used to quickly compare dictionary keys during a
699   dictionary lookup.  Numeric values that compare equal have the same hash
700   value (even if they are of different types, as is the case for 1 and 1.0).
701
702   .. note::
703
704      For objects with custom :meth:`__hash__` methods, note that :func:`hash`
705      truncates the return value based on the bit width of the host machine.
706      See :meth:`__hash__` for details.
707
708.. function:: help([object])
709
710   Invoke the built-in help system.  (This function is intended for interactive
711   use.)  If no argument is given, the interactive help system starts on the
712   interpreter console.  If the argument is a string, then the string is looked up
713   as the name of a module, function, class, method, keyword, or documentation
714   topic, and a help page is printed on the console.  If the argument is any other
715   kind of object, a help page on the object is generated.
716
717   Note that if a slash(/) appears in the parameter list of a function, when
718   invoking :func:`help`, it means that the parameters prior to the slash are
719   positional-only. For more info, see
720   :ref:`the FAQ entry on positional-only parameters <faq-positional-only-arguments>`.
721
722   This function is added to the built-in namespace by the :mod:`site` module.
723
724   .. versionchanged:: 3.4
725      Changes to :mod:`pydoc` and :mod:`inspect` mean that the reported
726      signatures for callables are now more comprehensive and consistent.
727
728
729.. function:: hex(x)
730
731   Convert an integer number to a lowercase hexadecimal string prefixed with
732   "0x". If *x* is not a Python :class:`int` object, it has to define an
733   :meth:`__index__` method that returns an integer. Some examples:
734
735      >>> hex(255)
736      '0xff'
737      >>> hex(-42)
738      '-0x2a'
739
740   If you want to convert an integer number to an uppercase or lower hexadecimal
741   string with prefix or not, you can use either of the following ways:
742
743     >>> '%#x' % 255, '%x' % 255, '%X' % 255
744     ('0xff', 'ff', 'FF')
745     >>> format(255, '#x'), format(255, 'x'), format(255, 'X')
746     ('0xff', 'ff', 'FF')
747     >>> f'{255:#x}', f'{255:x}', f'{255:X}'
748     ('0xff', 'ff', 'FF')
749
750   See also :func:`format` for more information.
751
752   See also :func:`int` for converting a hexadecimal string to an
753   integer using a base of 16.
754
755   .. note::
756
757      To obtain a hexadecimal string representation for a float, use the
758      :meth:`float.hex` method.
759
760
761.. function:: id(object)
762
763   Return the "identity" of an object.  This is an integer which
764   is guaranteed to be unique and constant for this object during its lifetime.
765   Two objects with non-overlapping lifetimes may have the same :func:`id`
766   value.
767
768   .. impl-detail:: This is the address of the object in memory.
769
770
771.. function:: input([prompt])
772
773   If the *prompt* argument is present, it is written to standard output without
774   a trailing newline.  The function then reads a line from input, converts it
775   to a string (stripping a trailing newline), and returns that.  When EOF is
776   read, :exc:`EOFError` is raised.  Example::
777
778      >>> s = input('--> ')  # doctest: +SKIP
779      --> Monty Python's Flying Circus
780      >>> s  # doctest: +SKIP
781      "Monty Python's Flying Circus"
782
783   If the :mod:`readline` module was loaded, then :func:`input` will use it
784   to provide elaborate line editing and history features.
785
786   .. audit-event:: builtins.input prompt input
787
788      Raises an :ref:`auditing event <auditing>` ``builtins.input`` with
789      argument ``prompt`` before reading input
790
791   .. audit-event:: builtins.input/result result input
792
793      Raises an auditing event ``builtins.input/result`` with the result after
794      successfully reading input.
795
796
797.. class:: int([x])
798           int(x, base=10)
799
800   Return an integer object constructed from a number or string *x*, or return
801   ``0`` if no arguments are given.  If *x* defines :meth:`__int__`,
802   ``int(x)`` returns ``x.__int__()``.  If *x* defines :meth:`__index__`,
803   it returns ``x.__index__()``.  If *x* defines :meth:`__trunc__`,
804   it returns ``x.__trunc__()``.
805   For floating point numbers, this truncates towards zero.
806
807   If *x* is not a number or if *base* is given, then *x* must be a string,
808   :class:`bytes`, or :class:`bytearray` instance representing an :ref:`integer
809   literal <integers>` in radix *base*.  Optionally, the literal can be
810   preceded by ``+`` or ``-`` (with no space in between) and surrounded by
811   whitespace.  A base-n literal consists of the digits 0 to n-1, with ``a``
812   to ``z`` (or ``A`` to ``Z``) having
813   values 10 to 35.  The default *base* is 10. The allowed values are 0 and 2--36.
814   Base-2, -8, and -16 literals can be optionally prefixed with ``0b``/``0B``,
815   ``0o``/``0O``, or ``0x``/``0X``, as with integer literals in code.  Base 0
816   means to interpret exactly as a code literal, so that the actual base is 2,
817   8, 10, or 16, and so that ``int('010', 0)`` is not legal, while
818   ``int('010')`` is, as well as ``int('010', 8)``.
819
820   The integer type is described in :ref:`typesnumeric`.
821
822   .. versionchanged:: 3.4
823      If *base* is not an instance of :class:`int` and the *base* object has a
824      :meth:`base.__index__ <object.__index__>` method, that method is called
825      to obtain an integer for the base.  Previous versions used
826      :meth:`base.__int__ <object.__int__>` instead of :meth:`base.__index__
827      <object.__index__>`.
828
829   .. versionchanged:: 3.6
830      Grouping digits with underscores as in code literals is allowed.
831
832   .. versionchanged:: 3.7
833      *x* is now a positional-only parameter.
834
835   .. versionchanged:: 3.8
836      Falls back to :meth:`__index__` if :meth:`__int__` is not defined.
837
838   .. versionchanged:: 3.8.2
839      :class:`int` string inputs and string representations can be limited to
840      help avoid denial of service attacks. A :exc:`ValueError` is raised when
841      the limit is exceeded while converting a string *x* to an :class:`int` or
842      when converting an :class:`int` into a string would exceed the limit.
843      See the :ref:`integer string conversion length limitation
844      <int_max_str_digits>` documentation.
845
846
847.. function:: isinstance(object, classinfo)
848
849   Return ``True`` if the *object* argument is an instance of the *classinfo*
850   argument, or of a (direct, indirect or :term:`virtual <abstract base
851   class>`) subclass thereof.  If *object* is not
852   an object of the given type, the function always returns ``False``.
853   If *classinfo* is a tuple of type objects (or recursively, other such
854   tuples), return ``True`` if *object* is an instance of any of the types.
855   If *classinfo* is not a type or tuple of types and such tuples,
856   a :exc:`TypeError` exception is raised.
857
858
859.. function:: issubclass(class, classinfo)
860
861   Return ``True`` if *class* is a subclass (direct, indirect or :term:`virtual
862   <abstract base class>`) of *classinfo*.  A
863   class is considered a subclass of itself. *classinfo* may be a tuple of class
864   objects, in which case every entry in *classinfo* will be checked. In any other
865   case, a :exc:`TypeError` exception is raised.
866
867
868.. function:: iter(object[, sentinel])
869
870   Return an :term:`iterator` object.  The first argument is interpreted very
871   differently depending on the presence of the second argument. Without a
872   second argument, *object* must be a collection object which supports the
873   iteration protocol (the :meth:`__iter__` method), or it must support the
874   sequence protocol (the :meth:`__getitem__` method with integer arguments
875   starting at ``0``).  If it does not support either of those protocols,
876   :exc:`TypeError` is raised. If the second argument, *sentinel*, is given,
877   then *object* must be a callable object.  The iterator created in this case
878   will call *object* with no arguments for each call to its
879   :meth:`~iterator.__next__` method; if the value returned is equal to
880   *sentinel*, :exc:`StopIteration` will be raised, otherwise the value will
881   be returned.
882
883   See also :ref:`typeiter`.
884
885   One useful application of the second form of :func:`iter` is to build a
886   block-reader. For example, reading fixed-width blocks from a binary
887   database file until the end of file is reached::
888
889      from functools import partial
890      with open('mydata.db', 'rb') as f:
891          for block in iter(partial(f.read, 64), b''):
892              process_block(block)
893
894
895.. function:: len(s)
896
897   Return the length (the number of items) of an object.  The argument may be a
898   sequence (such as a string, bytes, tuple, list, or range) or a collection
899   (such as a dictionary, set, or frozen set).
900
901
902.. _func-list:
903.. class:: list([iterable])
904   :noindex:
905
906   Rather than being a function, :class:`list` is actually a mutable
907   sequence type, as documented in :ref:`typesseq-list` and :ref:`typesseq`.
908
909
910.. function:: locals()
911
912   Update and return a dictionary representing the current local symbol table.
913   Free variables are returned by :func:`locals` when it is called in function
914   blocks, but not in class blocks. Note that at the module level, :func:`locals`
915   and :func:`globals` are the same dictionary.
916
917   .. note::
918      The contents of this dictionary should not be modified; changes may not
919      affect the values of local and free variables used by the interpreter.
920
921.. function:: map(function, iterable, ...)
922
923   Return an iterator that applies *function* to every item of *iterable*,
924   yielding the results.  If additional *iterable* arguments are passed,
925   *function* must take that many arguments and is applied to the items from all
926   iterables in parallel.  With multiple iterables, the iterator stops when the
927   shortest iterable is exhausted.  For cases where the function inputs are
928   already arranged into argument tuples, see :func:`itertools.starmap`\.
929
930
931.. function:: max(iterable, *[, key, default])
932              max(arg1, arg2, *args[, key])
933
934   Return the largest item in an iterable or the largest of two or more
935   arguments.
936
937   If one positional argument is provided, it should be an :term:`iterable`.
938   The largest item in the iterable is returned.  If two or more positional
939   arguments are provided, the largest of the positional arguments is
940   returned.
941
942   There are two optional keyword-only arguments. The *key* argument specifies
943   a one-argument ordering function like that used for :meth:`list.sort`. The
944   *default* argument specifies an object to return if the provided iterable is
945   empty. If the iterable is empty and *default* is not provided, a
946   :exc:`ValueError` is raised.
947
948   If multiple items are maximal, the function returns the first one
949   encountered.  This is consistent with other sort-stability preserving tools
950   such as ``sorted(iterable, key=keyfunc, reverse=True)[0]`` and
951   ``heapq.nlargest(1, iterable, key=keyfunc)``.
952
953   .. versionadded:: 3.4
954      The *default* keyword-only argument.
955
956   .. versionchanged:: 3.8
957      The *key* can be ``None``.
958
959
960.. _func-memoryview:
961.. class:: memoryview(obj)
962   :noindex:
963
964   Return a "memory view" object created from the given argument.  See
965   :ref:`typememoryview` for more information.
966
967
968.. function:: min(iterable, *[, key, default])
969              min(arg1, arg2, *args[, key])
970
971   Return the smallest item in an iterable or the smallest of two or more
972   arguments.
973
974   If one positional argument is provided, it should be an :term:`iterable`.
975   The smallest item in the iterable is returned.  If two or more positional
976   arguments are provided, the smallest of the positional arguments is
977   returned.
978
979   There are two optional keyword-only arguments. The *key* argument specifies
980   a one-argument ordering function like that used for :meth:`list.sort`. The
981   *default* argument specifies an object to return if the provided iterable is
982   empty. If the iterable is empty and *default* is not provided, a
983   :exc:`ValueError` is raised.
984
985   If multiple items are minimal, the function returns the first one
986   encountered.  This is consistent with other sort-stability preserving tools
987   such as ``sorted(iterable, key=keyfunc)[0]`` and ``heapq.nsmallest(1,
988   iterable, key=keyfunc)``.
989
990   .. versionadded:: 3.4
991      The *default* keyword-only argument.
992
993   .. versionchanged:: 3.8
994      The *key* can be ``None``.
995
996
997.. function:: next(iterator[, default])
998
999   Retrieve the next item from the *iterator* by calling its
1000   :meth:`~iterator.__next__` method.  If *default* is given, it is returned
1001   if the iterator is exhausted, otherwise :exc:`StopIteration` is raised.
1002
1003
1004.. class:: object()
1005
1006   Return a new featureless object.  :class:`object` is a base for all classes.
1007   It has the methods that are common to all instances of Python classes.  This
1008   function does not accept any arguments.
1009
1010   .. note::
1011
1012      :class:`object` does *not* have a :attr:`~object.__dict__`, so you can't
1013      assign arbitrary attributes to an instance of the :class:`object` class.
1014
1015
1016.. function:: oct(x)
1017
1018  Convert an integer number to an octal string prefixed with "0o".  The result
1019  is a valid Python expression. If *x* is not a Python :class:`int` object, it
1020  has to define an :meth:`__index__` method that returns an integer. For
1021  example:
1022
1023      >>> oct(8)
1024      '0o10'
1025      >>> oct(-56)
1026      '-0o70'
1027
1028  If you want to convert an integer number to octal string either with prefix
1029  "0o" or not, you can use either of the following ways.
1030
1031      >>> '%#o' % 10, '%o' % 10
1032      ('0o12', '12')
1033      >>> format(10, '#o'), format(10, 'o')
1034      ('0o12', '12')
1035      >>> f'{10:#o}', f'{10:o}'
1036      ('0o12', '12')
1037
1038  See also :func:`format` for more information.
1039
1040   .. index::
1041      single: file object; open() built-in function
1042
1043.. function:: open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)
1044
1045   Open *file* and return a corresponding :term:`file object`.  If the file
1046   cannot be opened, an :exc:`OSError` is raised.
1047
1048   *file* is a :term:`path-like object` giving the pathname (absolute or
1049   relative to the current working directory) of the file to be opened or an
1050   integer file descriptor of the file to be wrapped.  (If a file descriptor is
1051   given, it is closed when the returned I/O object is closed, unless *closefd*
1052   is set to ``False``.)
1053
1054   *mode* is an optional string that specifies the mode in which the file is
1055   opened.  It defaults to ``'r'`` which means open for reading in text mode.
1056   Other common values are ``'w'`` for writing (truncating the file if it
1057   already exists), ``'x'`` for exclusive creation and ``'a'`` for appending
1058   (which on *some* Unix systems, means that *all* writes append to the end of
1059   the file regardless of the current seek position).  In text mode, if
1060   *encoding* is not specified the encoding used is platform dependent:
1061   ``locale.getpreferredencoding(False)`` is called to get the current locale
1062   encoding. (For reading and writing raw bytes use binary mode and leave
1063   *encoding* unspecified.)  The available modes are:
1064
1065   .. _filemodes:
1066
1067   .. index::
1068      pair: file; modes
1069
1070   ========= ===============================================================
1071   Character Meaning
1072   ========= ===============================================================
1073   ``'r'``   open for reading (default)
1074   ``'w'``   open for writing, truncating the file first
1075   ``'x'``   open for exclusive creation, failing if the file already exists
1076   ``'a'``   open for writing, appending to the end of the file if it exists
1077   ``'b'``   binary mode
1078   ``'t'``   text mode (default)
1079   ``'+'``   open for updating (reading and writing)
1080   ========= ===============================================================
1081
1082   The default mode is ``'r'`` (open for reading text, synonym of ``'rt'``).
1083   Modes ``'w+'`` and ``'w+b'`` open and truncate the file.  Modes ``'r+'``
1084   and ``'r+b'`` open the file with no truncation.
1085
1086   As mentioned in the :ref:`io-overview`, Python distinguishes between binary
1087   and text I/O.  Files opened in binary mode (including ``'b'`` in the *mode*
1088   argument) return contents as :class:`bytes` objects without any decoding.  In
1089   text mode (the default, or when ``'t'`` is included in the *mode* argument),
1090   the contents of the file are returned as :class:`str`, the bytes having been
1091   first decoded using a platform-dependent encoding or using the specified
1092   *encoding* if given.
1093
1094   There is an additional mode character permitted, ``'U'``, which no longer
1095   has any effect, and is considered deprecated. It previously enabled
1096   :term:`universal newlines` in text mode, which became the default behaviour
1097   in Python 3.0. Refer to the documentation of the
1098   :ref:`newline <open-newline-parameter>` parameter for further details.
1099
1100   .. note::
1101
1102      Python doesn't depend on the underlying operating system's notion of text
1103      files; all the processing is done by Python itself, and is therefore
1104      platform-independent.
1105
1106   *buffering* is an optional integer used to set the buffering policy.  Pass 0
1107   to switch buffering off (only allowed in binary mode), 1 to select line
1108   buffering (only usable in text mode), and an integer > 1 to indicate the size
1109   in bytes of a fixed-size chunk buffer.  When no *buffering* argument is
1110   given, the default buffering policy works as follows:
1111
1112   * Binary files are buffered in fixed-size chunks; the size of the buffer is
1113     chosen using a heuristic trying to determine the underlying device's "block
1114     size" and falling back on :attr:`io.DEFAULT_BUFFER_SIZE`.  On many systems,
1115     the buffer will typically be 4096 or 8192 bytes long.
1116
1117   * "Interactive" text files (files for which :meth:`~io.IOBase.isatty`
1118     returns ``True``) use line buffering.  Other text files use the policy
1119     described above for binary files.
1120
1121   *encoding* is the name of the encoding used to decode or encode the file.
1122   This should only be used in text mode.  The default encoding is platform
1123   dependent (whatever :func:`locale.getpreferredencoding` returns), but any
1124   :term:`text encoding` supported by Python
1125   can be used.  See the :mod:`codecs` module for
1126   the list of supported encodings.
1127
1128   *errors* is an optional string that specifies how encoding and decoding
1129   errors are to be handled—this cannot be used in binary mode.
1130   A variety of standard error handlers are available
1131   (listed under :ref:`error-handlers`), though any
1132   error handling name that has been registered with
1133   :func:`codecs.register_error` is also valid.  The standard names
1134   include:
1135
1136   * ``'strict'`` to raise a :exc:`ValueError` exception if there is
1137     an encoding error.  The default value of ``None`` has the same
1138     effect.
1139
1140   * ``'ignore'`` ignores errors.  Note that ignoring encoding errors
1141     can lead to data loss.
1142
1143   * ``'replace'`` causes a replacement marker (such as ``'?'``) to be inserted
1144     where there is malformed data.
1145
1146   * ``'surrogateescape'`` will represent any incorrect bytes as code
1147     points in the Unicode Private Use Area ranging from U+DC80 to
1148     U+DCFF.  These private code points will then be turned back into
1149     the same bytes when the ``surrogateescape`` error handler is used
1150     when writing data.  This is useful for processing files in an
1151     unknown encoding.
1152
1153   * ``'xmlcharrefreplace'`` is only supported when writing to a file.
1154     Characters not supported by the encoding are replaced with the
1155     appropriate XML character reference ``&#nnn;``.
1156
1157   * ``'backslashreplace'`` replaces malformed data by Python's backslashed
1158     escape sequences.
1159
1160   * ``'namereplace'`` (also only supported when writing)
1161     replaces unsupported characters with ``\N{...}`` escape sequences.
1162
1163   .. index::
1164      single: universal newlines; open() built-in function
1165
1166   .. _open-newline-parameter:
1167
1168   *newline* controls how :term:`universal newlines` mode works (it only
1169   applies to text mode).  It can be ``None``, ``''``, ``'\n'``, ``'\r'``, and
1170   ``'\r\n'``.  It works as follows:
1171
1172   * When reading input from the stream, if *newline* is ``None``, universal
1173     newlines mode is enabled.  Lines in the input can end in ``'\n'``,
1174     ``'\r'``, or ``'\r\n'``, and these are translated into ``'\n'`` before
1175     being returned to the caller.  If it is ``''``, universal newlines mode is
1176     enabled, but line endings are returned to the caller untranslated.  If it
1177     has any of the other legal values, input lines are only terminated by the
1178     given string, and the line ending is returned to the caller untranslated.
1179
1180   * When writing output to the stream, if *newline* is ``None``, any ``'\n'``
1181     characters written are translated to the system default line separator,
1182     :data:`os.linesep`.  If *newline* is ``''`` or ``'\n'``, no translation
1183     takes place.  If *newline* is any of the other legal values, any ``'\n'``
1184     characters written are translated to the given string.
1185
1186   If *closefd* is ``False`` and a file descriptor rather than a filename was
1187   given, the underlying file descriptor will be kept open when the file is
1188   closed.  If a filename is given *closefd* must be ``True`` (the default)
1189   otherwise an error will be raised.
1190
1191   A custom opener can be used by passing a callable as *opener*. The underlying
1192   file descriptor for the file object is then obtained by calling *opener* with
1193   (*file*, *flags*). *opener* must return an open file descriptor (passing
1194   :mod:`os.open` as *opener* results in functionality similar to passing
1195   ``None``).
1196
1197   The newly created file is :ref:`non-inheritable <fd_inheritance>`.
1198
1199   The following example uses the :ref:`dir_fd <dir_fd>` parameter of the
1200   :func:`os.open` function to open a file relative to a given directory::
1201
1202      >>> import os
1203      >>> dir_fd = os.open('somedir', os.O_RDONLY)
1204      >>> def opener(path, flags):
1205      ...     return os.open(path, flags, dir_fd=dir_fd)
1206      ...
1207      >>> with open('spamspam.txt', 'w', opener=opener) as f:
1208      ...     print('This will be written to somedir/spamspam.txt', file=f)
1209      ...
1210      >>> os.close(dir_fd)  # don't leak a file descriptor
1211
1212   The type of :term:`file object` returned by the :func:`open` function
1213   depends on the mode.  When :func:`open` is used to open a file in a text
1214   mode (``'w'``, ``'r'``, ``'wt'``, ``'rt'``, etc.), it returns a subclass of
1215   :class:`io.TextIOBase` (specifically :class:`io.TextIOWrapper`).  When used
1216   to open a file in a binary mode with buffering, the returned class is a
1217   subclass of :class:`io.BufferedIOBase`.  The exact class varies: in read
1218   binary mode, it returns an :class:`io.BufferedReader`; in write binary and
1219   append binary modes, it returns an :class:`io.BufferedWriter`, and in
1220   read/write mode, it returns an :class:`io.BufferedRandom`.  When buffering is
1221   disabled, the raw stream, a subclass of :class:`io.RawIOBase`,
1222   :class:`io.FileIO`, is returned.
1223
1224   .. index::
1225      single: line-buffered I/O
1226      single: unbuffered I/O
1227      single: buffer size, I/O
1228      single: I/O control; buffering
1229      single: binary mode
1230      single: text mode
1231      module: sys
1232
1233   See also the file handling modules, such as, :mod:`fileinput`, :mod:`io`
1234   (where :func:`open` is declared), :mod:`os`, :mod:`os.path`, :mod:`tempfile`,
1235   and :mod:`shutil`.
1236
1237   .. audit-event:: open file,mode,flags open
1238
1239   The ``mode`` and ``flags`` arguments may have been modified or inferred from
1240   the original call.
1241
1242   .. versionchanged::
1243      3.3
1244
1245         * The *opener* parameter was added.
1246         * The ``'x'`` mode was added.
1247         * :exc:`IOError` used to be raised, it is now an alias of :exc:`OSError`.
1248         * :exc:`FileExistsError` is now raised if the file opened in exclusive
1249           creation mode (``'x'``) already exists.
1250
1251   .. versionchanged::
1252      3.4
1253
1254         * The file is now non-inheritable.
1255
1256   .. deprecated-removed:: 3.4 3.9
1257
1258      The ``'U'`` mode.
1259
1260   .. versionchanged::
1261      3.5
1262
1263         * If the system call is interrupted and the signal handler does not raise an
1264           exception, the function now retries the system call instead of raising an
1265           :exc:`InterruptedError` exception (see :pep:`475` for the rationale).
1266         * The ``'namereplace'`` error handler was added.
1267
1268   .. versionchanged::
1269      3.6
1270
1271         * Support added to accept objects implementing :class:`os.PathLike`.
1272         * On Windows, opening a console buffer may return a subclass of
1273           :class:`io.RawIOBase` other than :class:`io.FileIO`.
1274
1275.. function:: ord(c)
1276
1277   Given a string representing one Unicode character, return an integer
1278   representing the Unicode code point of that character.  For example,
1279   ``ord('a')`` returns the integer ``97`` and ``ord('€')`` (Euro sign)
1280   returns ``8364``.  This is the inverse of :func:`chr`.
1281
1282
1283.. function:: pow(base, exp[, mod])
1284
1285   Return *base* to the power *exp*; if *mod* is present, return *base* to the
1286   power *exp*, modulo *mod* (computed more efficiently than
1287   ``pow(base, exp) % mod``). The two-argument form ``pow(base, exp)`` is
1288   equivalent to using the power operator: ``base**exp``.
1289
1290   The arguments must have numeric types.  With mixed operand types, the
1291   coercion rules for binary arithmetic operators apply.  For :class:`int`
1292   operands, the result has the same type as the operands (after coercion)
1293   unless the second argument is negative; in that case, all arguments are
1294   converted to float and a float result is delivered.  For example, ``10**2``
1295   returns ``100``, but ``10**-2`` returns ``0.01``.
1296
1297   For :class:`int` operands *base* and *exp*, if *mod* is present, *mod* must
1298   also be of integer type and *mod* must be nonzero. If *mod* is present and
1299   *exp* is negative, *base* must be relatively prime to *mod*. In that case,
1300   ``pow(inv_base, -exp, mod)`` is returned, where *inv_base* is an inverse to
1301   *base* modulo *mod*.
1302
1303   Here's an example of computing an inverse for ``38`` modulo ``97``::
1304
1305      >>> pow(38, -1, mod=97)
1306      23
1307      >>> 23 * 38 % 97 == 1
1308      True
1309
1310   .. versionchanged:: 3.8
1311      For :class:`int` operands, the three-argument form of ``pow`` now allows
1312      the second argument to be negative, permitting computation of modular
1313      inverses.
1314
1315   .. versionchanged:: 3.8
1316      Allow keyword arguments.  Formerly, only positional arguments were
1317      supported.
1318
1319
1320.. function:: print(*objects, sep=' ', end='\\n', file=sys.stdout, flush=False)
1321
1322   Print *objects* to the text stream *file*, separated by *sep* and followed
1323   by *end*.  *sep*, *end*, *file* and *flush*, if present, must be given as keyword
1324   arguments.
1325
1326   All non-keyword arguments are converted to strings like :func:`str` does and
1327   written to the stream, separated by *sep* and followed by *end*.  Both *sep*
1328   and *end* must be strings; they can also be ``None``, which means to use the
1329   default values.  If no *objects* are given, :func:`print` will just write
1330   *end*.
1331
1332   The *file* argument must be an object with a ``write(string)`` method; if it
1333   is not present or ``None``, :data:`sys.stdout` will be used.  Since printed
1334   arguments are converted to text strings, :func:`print` cannot be used with
1335   binary mode file objects.  For these, use ``file.write(...)`` instead.
1336
1337   Whether output is buffered is usually determined by *file*, but if the
1338   *flush* keyword argument is true, the stream is forcibly flushed.
1339
1340   .. versionchanged:: 3.3
1341      Added the *flush* keyword argument.
1342
1343
1344.. class:: property(fget=None, fset=None, fdel=None, doc=None)
1345
1346   Return a property attribute.
1347
1348   *fget* is a function for getting an attribute value.  *fset* is a function
1349   for setting an attribute value. *fdel* is a function for deleting an attribute
1350   value.  And *doc* creates a docstring for the attribute.
1351
1352   A typical use is to define a managed attribute ``x``::
1353
1354      class C:
1355          def __init__(self):
1356              self._x = None
1357
1358          def getx(self):
1359              return self._x
1360
1361          def setx(self, value):
1362              self._x = value
1363
1364          def delx(self):
1365              del self._x
1366
1367          x = property(getx, setx, delx, "I'm the 'x' property.")
1368
1369   If *c* is an instance of *C*, ``c.x`` will invoke the getter,
1370   ``c.x = value`` will invoke the setter and ``del c.x`` the deleter.
1371
1372   If given, *doc* will be the docstring of the property attribute. Otherwise, the
1373   property will copy *fget*'s docstring (if it exists).  This makes it possible to
1374   create read-only properties easily using :func:`property` as a :term:`decorator`::
1375
1376      class Parrot:
1377          def __init__(self):
1378              self._voltage = 100000
1379
1380          @property
1381          def voltage(self):
1382              """Get the current voltage."""
1383              return self._voltage
1384
1385   The ``@property`` decorator turns the :meth:`voltage` method into a "getter"
1386   for a read-only attribute with the same name, and it sets the docstring for
1387   *voltage* to "Get the current voltage."
1388
1389   A property object has :attr:`~property.getter`, :attr:`~property.setter`,
1390   and :attr:`~property.deleter` methods usable as decorators that create a
1391   copy of the property with the corresponding accessor function set to the
1392   decorated function.  This is best explained with an example::
1393
1394      class C:
1395          def __init__(self):
1396              self._x = None
1397
1398          @property
1399          def x(self):
1400              """I'm the 'x' property."""
1401              return self._x
1402
1403          @x.setter
1404          def x(self, value):
1405              self._x = value
1406
1407          @x.deleter
1408          def x(self):
1409              del self._x
1410
1411   This code is exactly equivalent to the first example.  Be sure to give the
1412   additional functions the same name as the original property (``x`` in this
1413   case.)
1414
1415   The returned property object also has the attributes ``fget``, ``fset``, and
1416   ``fdel`` corresponding to the constructor arguments.
1417
1418   .. versionchanged:: 3.5
1419      The docstrings of property objects are now writeable.
1420
1421
1422.. _func-range:
1423.. class:: range(stop)
1424              range(start, stop[, step])
1425   :noindex:
1426
1427   Rather than being a function, :class:`range` is actually an immutable
1428   sequence type, as documented in :ref:`typesseq-range` and :ref:`typesseq`.
1429
1430
1431.. function:: repr(object)
1432
1433   Return a string containing a printable representation of an object.  For many
1434   types, this function makes an attempt to return a string that would yield an
1435   object with the same value when passed to :func:`eval`, otherwise the
1436   representation is a string enclosed in angle brackets that contains the name
1437   of the type of the object together with additional information often
1438   including the name and address of the object.  A class can control what this
1439   function returns for its instances by defining a :meth:`__repr__` method.
1440
1441
1442.. function:: reversed(seq)
1443
1444   Return a reverse :term:`iterator`.  *seq* must be an object which has
1445   a :meth:`__reversed__` method or supports the sequence protocol (the
1446   :meth:`__len__` method and the :meth:`__getitem__` method with integer
1447   arguments starting at ``0``).
1448
1449
1450.. function:: round(number[, ndigits])
1451
1452   Return *number* rounded to *ndigits* precision after the decimal
1453   point.  If *ndigits* is omitted or is ``None``, it returns the
1454   nearest integer to its input.
1455
1456   For the built-in types supporting :func:`round`, values are rounded to the
1457   closest multiple of 10 to the power minus *ndigits*; if two multiples are
1458   equally close, rounding is done toward the even choice (so, for example,
1459   both ``round(0.5)`` and ``round(-0.5)`` are ``0``, and ``round(1.5)`` is
1460   ``2``).  Any integer value is valid for *ndigits* (positive, zero, or
1461   negative).  The return value is an integer if *ndigits* is omitted or
1462   ``None``.
1463   Otherwise the return value has the same type as *number*.
1464
1465   For a general Python object ``number``, ``round`` delegates to
1466   ``number.__round__``.
1467
1468   .. note::
1469
1470      The behavior of :func:`round` for floats can be surprising: for example,
1471      ``round(2.675, 2)`` gives ``2.67`` instead of the expected ``2.68``.
1472      This is not a bug: it's a result of the fact that most decimal fractions
1473      can't be represented exactly as a float.  See :ref:`tut-fp-issues` for
1474      more information.
1475
1476
1477.. _func-set:
1478.. class:: set([iterable])
1479   :noindex:
1480
1481   Return a new :class:`set` object, optionally with elements taken from
1482   *iterable*.  ``set`` is a built-in class.  See :class:`set` and
1483   :ref:`types-set` for documentation about this class.
1484
1485   For other containers see the built-in :class:`frozenset`, :class:`list`,
1486   :class:`tuple`, and :class:`dict` classes, as well as the :mod:`collections`
1487   module.
1488
1489
1490.. function:: setattr(object, name, value)
1491
1492   This is the counterpart of :func:`getattr`.  The arguments are an object, a
1493   string and an arbitrary value.  The string may name an existing attribute or a
1494   new attribute.  The function assigns the value to the attribute, provided the
1495   object allows it.  For example, ``setattr(x, 'foobar', 123)`` is equivalent to
1496   ``x.foobar = 123``.
1497
1498
1499.. class:: slice(stop)
1500           slice(start, stop[, step])
1501
1502   .. index:: single: Numerical Python
1503
1504   Return a :term:`slice` object representing the set of indices specified by
1505   ``range(start, stop, step)``.  The *start* and *step* arguments default to
1506   ``None``.  Slice objects have read-only data attributes :attr:`~slice.start`,
1507   :attr:`~slice.stop` and :attr:`~slice.step` which merely return the argument
1508   values (or their default).  They have no other explicit functionality;
1509   however they are used by Numerical Python and other third party extensions.
1510   Slice objects are also generated when extended indexing syntax is used.  For
1511   example: ``a[start:stop:step]`` or ``a[start:stop, i]``.  See
1512   :func:`itertools.islice` for an alternate version that returns an iterator.
1513
1514
1515.. function:: sorted(iterable, *, key=None, reverse=False)
1516
1517   Return a new sorted list from the items in *iterable*.
1518
1519   Has two optional arguments which must be specified as keyword arguments.
1520
1521   *key* specifies a function of one argument that is used to extract a comparison
1522   key from each element in *iterable* (for example, ``key=str.lower``).  The
1523   default value is ``None`` (compare the elements directly).
1524
1525   *reverse* is a boolean value.  If set to ``True``, then the list elements are
1526   sorted as if each comparison were reversed.
1527
1528   Use :func:`functools.cmp_to_key` to convert an old-style *cmp* function to a
1529   *key* function.
1530
1531   The built-in :func:`sorted` function is guaranteed to be stable. A sort is
1532   stable if it guarantees not to change the relative order of elements that
1533   compare equal --- this is helpful for sorting in multiple passes (for
1534   example, sort by department, then by salary grade).
1535
1536   For sorting examples and a brief sorting tutorial, see :ref:`sortinghowto`.
1537
1538.. decorator:: staticmethod
1539
1540   Transform a method into a static method.
1541
1542   A static method does not receive an implicit first argument. To declare a static
1543   method, use this idiom::
1544
1545      class C:
1546          @staticmethod
1547          def f(arg1, arg2, ...): ...
1548
1549   The ``@staticmethod`` form is a function :term:`decorator` -- see
1550   :ref:`function` for details.
1551
1552   A static method can be called either on the class (such as ``C.f()``) or on an instance (such
1553   as ``C().f()``).
1554
1555   Static methods in Python are similar to those found in Java or C++. Also see
1556   :func:`classmethod` for a variant that is useful for creating alternate class
1557   constructors.
1558
1559   Like all decorators, it is also possible to call ``staticmethod`` as
1560   a regular function and do something with its result.  This is needed
1561   in some cases where you need a reference to a function from a class
1562   body and you want to avoid the automatic transformation to instance
1563   method.  For these cases, use this idiom::
1564
1565      class C:
1566          builtin_open = staticmethod(open)
1567
1568   For more information on static methods, see :ref:`types`.
1569
1570
1571.. index::
1572   single: string; str() (built-in function)
1573
1574.. _func-str:
1575.. class:: str(object='')
1576           str(object=b'', encoding='utf-8', errors='strict')
1577   :noindex:
1578
1579   Return a :class:`str` version of *object*.  See :func:`str` for details.
1580
1581   ``str`` is the built-in string :term:`class`.  For general information
1582   about strings, see :ref:`textseq`.
1583
1584
1585.. function:: sum(iterable, /, start=0)
1586
1587   Sums *start* and the items of an *iterable* from left to right and returns the
1588   total.  The *iterable*'s items are normally numbers, and the start value is not
1589   allowed to be a string.
1590
1591   For some use cases, there are good alternatives to :func:`sum`.
1592   The preferred, fast way to concatenate a sequence of strings is by calling
1593   ``''.join(sequence)``.  To add floating point values with extended precision,
1594   see :func:`math.fsum`\.  To concatenate a series of iterables, consider using
1595   :func:`itertools.chain`.
1596
1597   .. versionchanged:: 3.8
1598      The *start* parameter can be specified as a keyword argument.
1599
1600.. function:: super([type[, object-or-type]])
1601
1602   Return a proxy object that delegates method calls to a parent or sibling
1603   class of *type*.  This is useful for accessing inherited methods that have
1604   been overridden in a class.
1605
1606   The *object-or-type* determines the :term:`method resolution order`
1607   to be searched.  The search starts from the class right after the
1608   *type*.
1609
1610   For example, if :attr:`~class.__mro__` of *object-or-type* is
1611   ``D -> B -> C -> A -> object`` and the value of *type* is ``B``,
1612   then :func:`super` searches ``C -> A -> object``.
1613
1614   The :attr:`~class.__mro__` attribute of the *object-or-type* lists the method
1615   resolution search order used by both :func:`getattr` and :func:`super`.  The
1616   attribute is dynamic and can change whenever the inheritance hierarchy is
1617   updated.
1618
1619   If the second argument is omitted, the super object returned is unbound.  If
1620   the second argument is an object, ``isinstance(obj, type)`` must be true.  If
1621   the second argument is a type, ``issubclass(type2, type)`` must be true (this
1622   is useful for classmethods).
1623
1624   There are two typical use cases for *super*.  In a class hierarchy with
1625   single inheritance, *super* can be used to refer to parent classes without
1626   naming them explicitly, thus making the code more maintainable.  This use
1627   closely parallels the use of *super* in other programming languages.
1628
1629   The second use case is to support cooperative multiple inheritance in a
1630   dynamic execution environment.  This use case is unique to Python and is
1631   not found in statically compiled languages or languages that only support
1632   single inheritance.  This makes it possible to implement "diamond diagrams"
1633   where multiple base classes implement the same method.  Good design dictates
1634   that this method have the same calling signature in every case (because the
1635   order of calls is determined at runtime, because that order adapts
1636   to changes in the class hierarchy, and because that order can include
1637   sibling classes that are unknown prior to runtime).
1638
1639   For both use cases, a typical superclass call looks like this::
1640
1641      class C(B):
1642          def method(self, arg):
1643              super().method(arg)    # This does the same thing as:
1644                                     # super(C, self).method(arg)
1645
1646   In addition to method lookups, :func:`super` also works for attribute
1647   lookups.  One possible use case for this is calling :term:`descriptors <descriptor>`
1648   in a parent or sibling class.
1649
1650   Note that :func:`super` is implemented as part of the binding process for
1651   explicit dotted attribute lookups such as ``super().__getitem__(name)``.
1652   It does so by implementing its own :meth:`__getattribute__` method for searching
1653   classes in a predictable order that supports cooperative multiple inheritance.
1654   Accordingly, :func:`super` is undefined for implicit lookups using statements or
1655   operators such as ``super()[name]``.
1656
1657   Also note that, aside from the zero argument form, :func:`super` is not
1658   limited to use inside methods.  The two argument form specifies the
1659   arguments exactly and makes the appropriate references.  The zero
1660   argument form only works inside a class definition, as the compiler fills
1661   in the necessary details to correctly retrieve the class being defined,
1662   as well as accessing the current instance for ordinary methods.
1663
1664   For practical suggestions on how to design cooperative classes using
1665   :func:`super`, see `guide to using super()
1666   <https://rhettinger.wordpress.com/2011/05/26/super-considered-super/>`_.
1667
1668
1669.. _func-tuple:
1670.. class:: tuple([iterable])
1671   :noindex:
1672
1673   Rather than being a function, :class:`tuple` is actually an immutable
1674   sequence type, as documented in :ref:`typesseq-tuple` and :ref:`typesseq`.
1675
1676
1677.. class:: type(object)
1678           type(name, bases, dict)
1679
1680   .. index:: object: type
1681
1682   With one argument, return the type of an *object*.  The return value is a
1683   type object and generally the same object as returned by
1684   :attr:`object.__class__ <instance.__class__>`.
1685
1686   The :func:`isinstance` built-in function is recommended for testing the type
1687   of an object, because it takes subclasses into account.
1688
1689
1690   With three arguments, return a new type object.  This is essentially a
1691   dynamic form of the :keyword:`class` statement. The *name* string is the
1692   class name and becomes the :attr:`~definition.__name__` attribute; the *bases*
1693   tuple itemizes the base classes and becomes the :attr:`~class.__bases__`
1694   attribute; and the *dict* dictionary is the namespace containing definitions
1695   for class body and is copied to a standard dictionary to become the
1696   :attr:`~object.__dict__` attribute.  For example, the following two
1697   statements create identical :class:`type` objects:
1698
1699      >>> class X:
1700      ...     a = 1
1701      ...
1702      >>> X = type('X', (object,), dict(a=1))
1703
1704   See also :ref:`bltin-type-objects`.
1705
1706   .. versionchanged:: 3.6
1707      Subclasses of :class:`type` which don't override ``type.__new__`` may no
1708      longer use the one-argument form to get the type of an object.
1709
1710.. function:: vars([object])
1711
1712   Return the :attr:`~object.__dict__` attribute for a module, class, instance,
1713   or any other object with a :attr:`~object.__dict__` attribute.
1714
1715   Objects such as modules and instances have an updateable :attr:`~object.__dict__`
1716   attribute; however, other objects may have write restrictions on their
1717   :attr:`~object.__dict__` attributes (for example, classes use a
1718   :class:`types.MappingProxyType` to prevent direct dictionary updates).
1719
1720   Without an argument, :func:`vars` acts like :func:`locals`.  Note, the
1721   locals dictionary is only useful for reads since updates to the locals
1722   dictionary are ignored.
1723
1724
1725.. function:: zip(*iterables)
1726
1727   Make an iterator that aggregates elements from each of the iterables.
1728
1729   Returns an iterator of tuples, where the *i*-th tuple contains
1730   the *i*-th element from each of the argument sequences or iterables.  The
1731   iterator stops when the shortest input iterable is exhausted. With a single
1732   iterable argument, it returns an iterator of 1-tuples.  With no arguments,
1733   it returns an empty iterator.  Equivalent to::
1734
1735        def zip(*iterables):
1736            # zip('ABCD', 'xy') --> Ax By
1737            sentinel = object()
1738            iterators = [iter(it) for it in iterables]
1739            while iterators:
1740                result = []
1741                for it in iterators:
1742                    elem = next(it, sentinel)
1743                    if elem is sentinel:
1744                        return
1745                    result.append(elem)
1746                yield tuple(result)
1747
1748   The left-to-right evaluation order of the iterables is guaranteed. This
1749   makes possible an idiom for clustering a data series into n-length groups
1750   using ``zip(*[iter(s)]*n)``.  This repeats the *same* iterator ``n`` times
1751   so that each output tuple has the result of ``n`` calls to the iterator.
1752   This has the effect of dividing the input into n-length chunks.
1753
1754   :func:`zip` should only be used with unequal length inputs when you don't
1755   care about trailing, unmatched values from the longer iterables.  If those
1756   values are important, use :func:`itertools.zip_longest` instead.
1757
1758   :func:`zip` in conjunction with the ``*`` operator can be used to unzip a
1759   list::
1760
1761      >>> x = [1, 2, 3]
1762      >>> y = [4, 5, 6]
1763      >>> zipped = zip(x, y)
1764      >>> list(zipped)
1765      [(1, 4), (2, 5), (3, 6)]
1766      >>> x2, y2 = zip(*zip(x, y))
1767      >>> x == list(x2) and y == list(y2)
1768      True
1769
1770
1771.. function:: __import__(name, globals=None, locals=None, fromlist=(), level=0)
1772
1773   .. index::
1774      statement: import
1775      module: imp
1776
1777   .. note::
1778
1779      This is an advanced function that is not needed in everyday Python
1780      programming, unlike :func:`importlib.import_module`.
1781
1782   This function is invoked by the :keyword:`import` statement.  It can be
1783   replaced (by importing the :mod:`builtins` module and assigning to
1784   ``builtins.__import__``) in order to change semantics of the
1785   :keyword:`!import` statement, but doing so is **strongly** discouraged as it
1786   is usually simpler to use import hooks (see :pep:`302`) to attain the same
1787   goals and does not cause issues with code which assumes the default import
1788   implementation is in use.  Direct use of :func:`__import__` is also
1789   discouraged in favor of :func:`importlib.import_module`.
1790
1791   The function imports the module *name*, potentially using the given *globals*
1792   and *locals* to determine how to interpret the name in a package context.
1793   The *fromlist* gives the names of objects or submodules that should be
1794   imported from the module given by *name*.  The standard implementation does
1795   not use its *locals* argument at all, and uses its *globals* only to
1796   determine the package context of the :keyword:`import` statement.
1797
1798   *level* specifies whether to use absolute or relative imports. ``0`` (the
1799   default) means only perform absolute imports.  Positive values for
1800   *level* indicate the number of parent directories to search relative to the
1801   directory of the module calling :func:`__import__` (see :pep:`328` for the
1802   details).
1803
1804   When the *name* variable is of the form ``package.module``, normally, the
1805   top-level package (the name up till the first dot) is returned, *not* the
1806   module named by *name*.  However, when a non-empty *fromlist* argument is
1807   given, the module named by *name* is returned.
1808
1809   For example, the statement ``import spam`` results in bytecode resembling the
1810   following code::
1811
1812      spam = __import__('spam', globals(), locals(), [], 0)
1813
1814   The statement ``import spam.ham`` results in this call::
1815
1816      spam = __import__('spam.ham', globals(), locals(), [], 0)
1817
1818   Note how :func:`__import__` returns the toplevel module here because this is
1819   the object that is bound to a name by the :keyword:`import` statement.
1820
1821   On the other hand, the statement ``from spam.ham import eggs, sausage as
1822   saus`` results in ::
1823
1824      _temp = __import__('spam.ham', globals(), locals(), ['eggs', 'sausage'], 0)
1825      eggs = _temp.eggs
1826      saus = _temp.sausage
1827
1828   Here, the ``spam.ham`` module is returned from :func:`__import__`.  From this
1829   object, the names to import are retrieved and assigned to their respective
1830   names.
1831
1832   If you simply want to import a module (potentially within a package) by name,
1833   use :func:`importlib.import_module`.
1834
1835   .. versionchanged:: 3.3
1836      Negative values for *level* are no longer supported (which also changes
1837      the default value to 0).
1838
1839
1840.. rubric:: Footnotes
1841
1842.. [#] Note that the parser only accepts the Unix-style end of line convention.
1843   If you are reading the code from a file, make sure to use newline conversion
1844   mode to convert Windows or Mac-style newlines.
1845