• 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
839.. function:: isinstance(object, classinfo)
840
841   Return ``True`` if the *object* argument is an instance of the *classinfo*
842   argument, or of a (direct, indirect or :term:`virtual <abstract base
843   class>`) subclass thereof.  If *object* is not
844   an object of the given type, the function always returns ``False``.
845   If *classinfo* is a tuple of type objects (or recursively, other such
846   tuples), return ``True`` if *object* is an instance of any of the types.
847   If *classinfo* is not a type or tuple of types and such tuples,
848   a :exc:`TypeError` exception is raised.
849
850
851.. function:: issubclass(class, classinfo)
852
853   Return ``True`` if *class* is a subclass (direct, indirect or :term:`virtual
854   <abstract base class>`) of *classinfo*.  A
855   class is considered a subclass of itself. *classinfo* may be a tuple of class
856   objects, in which case every entry in *classinfo* will be checked. In any other
857   case, a :exc:`TypeError` exception is raised.
858
859
860.. function:: iter(object[, sentinel])
861
862   Return an :term:`iterator` object.  The first argument is interpreted very
863   differently depending on the presence of the second argument. Without a
864   second argument, *object* must be a collection object which supports the
865   iteration protocol (the :meth:`__iter__` method), or it must support the
866   sequence protocol (the :meth:`__getitem__` method with integer arguments
867   starting at ``0``).  If it does not support either of those protocols,
868   :exc:`TypeError` is raised. If the second argument, *sentinel*, is given,
869   then *object* must be a callable object.  The iterator created in this case
870   will call *object* with no arguments for each call to its
871   :meth:`~iterator.__next__` method; if the value returned is equal to
872   *sentinel*, :exc:`StopIteration` will be raised, otherwise the value will
873   be returned.
874
875   See also :ref:`typeiter`.
876
877   One useful application of the second form of :func:`iter` is to build a
878   block-reader. For example, reading fixed-width blocks from a binary
879   database file until the end of file is reached::
880
881      from functools import partial
882      with open('mydata.db', 'rb') as f:
883          for block in iter(partial(f.read, 64), b''):
884              process_block(block)
885
886
887.. function:: len(s)
888
889   Return the length (the number of items) of an object.  The argument may be a
890   sequence (such as a string, bytes, tuple, list, or range) or a collection
891   (such as a dictionary, set, or frozen set).
892
893
894.. _func-list:
895.. class:: list([iterable])
896   :noindex:
897
898   Rather than being a function, :class:`list` is actually a mutable
899   sequence type, as documented in :ref:`typesseq-list` and :ref:`typesseq`.
900
901
902.. function:: locals()
903
904   Update and return a dictionary representing the current local symbol table.
905   Free variables are returned by :func:`locals` when it is called in function
906   blocks, but not in class blocks. Note that at the module level, :func:`locals`
907   and :func:`globals` are the same dictionary.
908
909   .. note::
910      The contents of this dictionary should not be modified; changes may not
911      affect the values of local and free variables used by the interpreter.
912
913.. function:: map(function, iterable, ...)
914
915   Return an iterator that applies *function* to every item of *iterable*,
916   yielding the results.  If additional *iterable* arguments are passed,
917   *function* must take that many arguments and is applied to the items from all
918   iterables in parallel.  With multiple iterables, the iterator stops when the
919   shortest iterable is exhausted.  For cases where the function inputs are
920   already arranged into argument tuples, see :func:`itertools.starmap`\.
921
922
923.. function:: max(iterable, *[, key, default])
924              max(arg1, arg2, *args[, key])
925
926   Return the largest item in an iterable or the largest of two or more
927   arguments.
928
929   If one positional argument is provided, it should be an :term:`iterable`.
930   The largest item in the iterable is returned.  If two or more positional
931   arguments are provided, the largest of the positional arguments is
932   returned.
933
934   There are two optional keyword-only arguments. The *key* argument specifies
935   a one-argument ordering function like that used for :meth:`list.sort`. The
936   *default* argument specifies an object to return if the provided iterable is
937   empty. If the iterable is empty and *default* is not provided, a
938   :exc:`ValueError` is raised.
939
940   If multiple items are maximal, the function returns the first one
941   encountered.  This is consistent with other sort-stability preserving tools
942   such as ``sorted(iterable, key=keyfunc, reverse=True)[0]`` and
943   ``heapq.nlargest(1, iterable, key=keyfunc)``.
944
945   .. versionadded:: 3.4
946      The *default* keyword-only argument.
947
948   .. versionchanged:: 3.8
949      The *key* can be ``None``.
950
951
952.. _func-memoryview:
953.. function:: memoryview(obj)
954   :noindex:
955
956   Return a "memory view" object created from the given argument.  See
957   :ref:`typememoryview` for more information.
958
959
960.. function:: min(iterable, *[, key, default])
961              min(arg1, arg2, *args[, key])
962
963   Return the smallest item in an iterable or the smallest of two or more
964   arguments.
965
966   If one positional argument is provided, it should be an :term:`iterable`.
967   The smallest item in the iterable is returned.  If two or more positional
968   arguments are provided, the smallest of the positional arguments is
969   returned.
970
971   There are two optional keyword-only arguments. The *key* argument specifies
972   a one-argument ordering function like that used for :meth:`list.sort`. The
973   *default* argument specifies an object to return if the provided iterable is
974   empty. If the iterable is empty and *default* is not provided, a
975   :exc:`ValueError` is raised.
976
977   If multiple items are minimal, the function returns the first one
978   encountered.  This is consistent with other sort-stability preserving tools
979   such as ``sorted(iterable, key=keyfunc)[0]`` and ``heapq.nsmallest(1,
980   iterable, key=keyfunc)``.
981
982   .. versionadded:: 3.4
983      The *default* keyword-only argument.
984
985   .. versionchanged:: 3.8
986      The *key* can be ``None``.
987
988
989.. function:: next(iterator[, default])
990
991   Retrieve the next item from the *iterator* by calling its
992   :meth:`~iterator.__next__` method.  If *default* is given, it is returned
993   if the iterator is exhausted, otherwise :exc:`StopIteration` is raised.
994
995
996.. class:: object()
997
998   Return a new featureless object.  :class:`object` is a base for all classes.
999   It has the methods that are common to all instances of Python classes.  This
1000   function does not accept any arguments.
1001
1002   .. note::
1003
1004      :class:`object` does *not* have a :attr:`~object.__dict__`, so you can't
1005      assign arbitrary attributes to an instance of the :class:`object` class.
1006
1007
1008.. function:: oct(x)
1009
1010  Convert an integer number to an octal string prefixed with "0o".  The result
1011  is a valid Python expression. If *x* is not a Python :class:`int` object, it
1012  has to define an :meth:`__index__` method that returns an integer. For
1013  example:
1014
1015      >>> oct(8)
1016      '0o10'
1017      >>> oct(-56)
1018      '-0o70'
1019
1020  If you want to convert an integer number to octal string either with prefix
1021  "0o" or not, you can use either of the following ways.
1022
1023      >>> '%#o' % 10, '%o' % 10
1024      ('0o12', '12')
1025      >>> format(10, '#o'), format(10, 'o')
1026      ('0o12', '12')
1027      >>> f'{10:#o}', f'{10:o}'
1028      ('0o12', '12')
1029
1030  See also :func:`format` for more information.
1031
1032   .. index::
1033      single: file object; open() built-in function
1034
1035.. function:: open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)
1036
1037   Open *file* and return a corresponding :term:`file object`.  If the file
1038   cannot be opened, an :exc:`OSError` is raised.
1039
1040   *file* is a :term:`path-like object` giving the pathname (absolute or
1041   relative to the current working directory) of the file to be opened or an
1042   integer file descriptor of the file to be wrapped.  (If a file descriptor is
1043   given, it is closed when the returned I/O object is closed, unless *closefd*
1044   is set to ``False``.)
1045
1046   *mode* is an optional string that specifies the mode in which the file is
1047   opened.  It defaults to ``'r'`` which means open for reading in text mode.
1048   Other common values are ``'w'`` for writing (truncating the file if it
1049   already exists), ``'x'`` for exclusive creation and ``'a'`` for appending
1050   (which on *some* Unix systems, means that *all* writes append to the end of
1051   the file regardless of the current seek position).  In text mode, if
1052   *encoding* is not specified the encoding used is platform dependent:
1053   ``locale.getpreferredencoding(False)`` is called to get the current locale
1054   encoding. (For reading and writing raw bytes use binary mode and leave
1055   *encoding* unspecified.)  The available modes are:
1056
1057   .. _filemodes:
1058
1059   .. index::
1060      pair: file; modes
1061
1062   ========= ===============================================================
1063   Character Meaning
1064   ========= ===============================================================
1065   ``'r'``   open for reading (default)
1066   ``'w'``   open for writing, truncating the file first
1067   ``'x'``   open for exclusive creation, failing if the file already exists
1068   ``'a'``   open for writing, appending to the end of the file if it exists
1069   ``'b'``   binary mode
1070   ``'t'``   text mode (default)
1071   ``'+'``   open for updating (reading and writing)
1072   ========= ===============================================================
1073
1074   The default mode is ``'r'`` (open for reading text, synonym of ``'rt'``).
1075   Modes ``'w+'`` and ``'w+b'`` open and truncate the file.  Modes ``'r+'``
1076   and ``'r+b'`` open the file with no truncation.
1077
1078   As mentioned in the :ref:`io-overview`, Python distinguishes between binary
1079   and text I/O.  Files opened in binary mode (including ``'b'`` in the *mode*
1080   argument) return contents as :class:`bytes` objects without any decoding.  In
1081   text mode (the default, or when ``'t'`` is included in the *mode* argument),
1082   the contents of the file are returned as :class:`str`, the bytes having been
1083   first decoded using a platform-dependent encoding or using the specified
1084   *encoding* if given.
1085
1086   There is an additional mode character permitted, ``'U'``, which no longer
1087   has any effect, and is considered deprecated. It previously enabled
1088   :term:`universal newlines` in text mode, which became the default behaviour
1089   in Python 3.0. Refer to the documentation of the
1090   :ref:`newline <open-newline-parameter>` parameter for further details.
1091
1092   .. note::
1093
1094      Python doesn't depend on the underlying operating system's notion of text
1095      files; all the processing is done by Python itself, and is therefore
1096      platform-independent.
1097
1098   *buffering* is an optional integer used to set the buffering policy.  Pass 0
1099   to switch buffering off (only allowed in binary mode), 1 to select line
1100   buffering (only usable in text mode), and an integer > 1 to indicate the size
1101   in bytes of a fixed-size chunk buffer.  When no *buffering* argument is
1102   given, the default buffering policy works as follows:
1103
1104   * Binary files are buffered in fixed-size chunks; the size of the buffer is
1105     chosen using a heuristic trying to determine the underlying device's "block
1106     size" and falling back on :attr:`io.DEFAULT_BUFFER_SIZE`.  On many systems,
1107     the buffer will typically be 4096 or 8192 bytes long.
1108
1109   * "Interactive" text files (files for which :meth:`~io.IOBase.isatty`
1110     returns ``True``) use line buffering.  Other text files use the policy
1111     described above for binary files.
1112
1113   *encoding* is the name of the encoding used to decode or encode the file.
1114   This should only be used in text mode.  The default encoding is platform
1115   dependent (whatever :func:`locale.getpreferredencoding` returns), but any
1116   :term:`text encoding` supported by Python
1117   can be used.  See the :mod:`codecs` module for
1118   the list of supported encodings.
1119
1120   *errors* is an optional string that specifies how encoding and decoding
1121   errors are to be handled—this cannot be used in binary mode.
1122   A variety of standard error handlers are available
1123   (listed under :ref:`error-handlers`), though any
1124   error handling name that has been registered with
1125   :func:`codecs.register_error` is also valid.  The standard names
1126   include:
1127
1128   * ``'strict'`` to raise a :exc:`ValueError` exception if there is
1129     an encoding error.  The default value of ``None`` has the same
1130     effect.
1131
1132   * ``'ignore'`` ignores errors.  Note that ignoring encoding errors
1133     can lead to data loss.
1134
1135   * ``'replace'`` causes a replacement marker (such as ``'?'``) to be inserted
1136     where there is malformed data.
1137
1138   * ``'surrogateescape'`` will represent any incorrect bytes as code
1139     points in the Unicode Private Use Area ranging from U+DC80 to
1140     U+DCFF.  These private code points will then be turned back into
1141     the same bytes when the ``surrogateescape`` error handler is used
1142     when writing data.  This is useful for processing files in an
1143     unknown encoding.
1144
1145   * ``'xmlcharrefreplace'`` is only supported when writing to a file.
1146     Characters not supported by the encoding are replaced with the
1147     appropriate XML character reference ``&#nnn;``.
1148
1149   * ``'backslashreplace'`` replaces malformed data by Python's backslashed
1150     escape sequences.
1151
1152   * ``'namereplace'`` (also only supported when writing)
1153     replaces unsupported characters with ``\N{...}`` escape sequences.
1154
1155   .. index::
1156      single: universal newlines; open() built-in function
1157
1158   .. _open-newline-parameter:
1159
1160   *newline* controls how :term:`universal newlines` mode works (it only
1161   applies to text mode).  It can be ``None``, ``''``, ``'\n'``, ``'\r'``, and
1162   ``'\r\n'``.  It works as follows:
1163
1164   * When reading input from the stream, if *newline* is ``None``, universal
1165     newlines mode is enabled.  Lines in the input can end in ``'\n'``,
1166     ``'\r'``, or ``'\r\n'``, and these are translated into ``'\n'`` before
1167     being returned to the caller.  If it is ``''``, universal newlines mode is
1168     enabled, but line endings are returned to the caller untranslated.  If it
1169     has any of the other legal values, input lines are only terminated by the
1170     given string, and the line ending is returned to the caller untranslated.
1171
1172   * When writing output to the stream, if *newline* is ``None``, any ``'\n'``
1173     characters written are translated to the system default line separator,
1174     :data:`os.linesep`.  If *newline* is ``''`` or ``'\n'``, no translation
1175     takes place.  If *newline* is any of the other legal values, any ``'\n'``
1176     characters written are translated to the given string.
1177
1178   If *closefd* is ``False`` and a file descriptor rather than a filename was
1179   given, the underlying file descriptor will be kept open when the file is
1180   closed.  If a filename is given *closefd* must be ``True`` (the default)
1181   otherwise an error will be raised.
1182
1183   A custom opener can be used by passing a callable as *opener*. The underlying
1184   file descriptor for the file object is then obtained by calling *opener* with
1185   (*file*, *flags*). *opener* must return an open file descriptor (passing
1186   :mod:`os.open` as *opener* results in functionality similar to passing
1187   ``None``).
1188
1189   The newly created file is :ref:`non-inheritable <fd_inheritance>`.
1190
1191   The following example uses the :ref:`dir_fd <dir_fd>` parameter of the
1192   :func:`os.open` function to open a file relative to a given directory::
1193
1194      >>> import os
1195      >>> dir_fd = os.open('somedir', os.O_RDONLY)
1196      >>> def opener(path, flags):
1197      ...     return os.open(path, flags, dir_fd=dir_fd)
1198      ...
1199      >>> with open('spamspam.txt', 'w', opener=opener) as f:
1200      ...     print('This will be written to somedir/spamspam.txt', file=f)
1201      ...
1202      >>> os.close(dir_fd)  # don't leak a file descriptor
1203
1204   The type of :term:`file object` returned by the :func:`open` function
1205   depends on the mode.  When :func:`open` is used to open a file in a text
1206   mode (``'w'``, ``'r'``, ``'wt'``, ``'rt'``, etc.), it returns a subclass of
1207   :class:`io.TextIOBase` (specifically :class:`io.TextIOWrapper`).  When used
1208   to open a file in a binary mode with buffering, the returned class is a
1209   subclass of :class:`io.BufferedIOBase`.  The exact class varies: in read
1210   binary mode, it returns an :class:`io.BufferedReader`; in write binary and
1211   append binary modes, it returns an :class:`io.BufferedWriter`, and in
1212   read/write mode, it returns an :class:`io.BufferedRandom`.  When buffering is
1213   disabled, the raw stream, a subclass of :class:`io.RawIOBase`,
1214   :class:`io.FileIO`, is returned.
1215
1216   .. index::
1217      single: line-buffered I/O
1218      single: unbuffered I/O
1219      single: buffer size, I/O
1220      single: I/O control; buffering
1221      single: binary mode
1222      single: text mode
1223      module: sys
1224
1225   See also the file handling modules, such as, :mod:`fileinput`, :mod:`io`
1226   (where :func:`open` is declared), :mod:`os`, :mod:`os.path`, :mod:`tempfile`,
1227   and :mod:`shutil`.
1228
1229   .. audit-event:: open file,mode,flags open
1230
1231   The ``mode`` and ``flags`` arguments may have been modified or inferred from
1232   the original call.
1233
1234   .. versionchanged::
1235      3.3
1236
1237         * The *opener* parameter was added.
1238         * The ``'x'`` mode was added.
1239         * :exc:`IOError` used to be raised, it is now an alias of :exc:`OSError`.
1240         * :exc:`FileExistsError` is now raised if the file opened in exclusive
1241           creation mode (``'x'``) already exists.
1242
1243   .. versionchanged::
1244      3.4
1245
1246         * The file is now non-inheritable.
1247
1248   .. deprecated-removed:: 3.4 3.9
1249
1250      The ``'U'`` mode.
1251
1252   .. versionchanged::
1253      3.5
1254
1255         * If the system call is interrupted and the signal handler does not raise an
1256           exception, the function now retries the system call instead of raising an
1257           :exc:`InterruptedError` exception (see :pep:`475` for the rationale).
1258         * The ``'namereplace'`` error handler was added.
1259
1260   .. versionchanged::
1261      3.6
1262
1263         * Support added to accept objects implementing :class:`os.PathLike`.
1264         * On Windows, opening a console buffer may return a subclass of
1265           :class:`io.RawIOBase` other than :class:`io.FileIO`.
1266
1267.. function:: ord(c)
1268
1269   Given a string representing one Unicode character, return an integer
1270   representing the Unicode code point of that character.  For example,
1271   ``ord('a')`` returns the integer ``97`` and ``ord('€')`` (Euro sign)
1272   returns ``8364``.  This is the inverse of :func:`chr`.
1273
1274
1275.. function:: pow(base, exp[, mod])
1276
1277   Return *base* to the power *exp*; if *mod* is present, return *base* to the
1278   power *exp*, modulo *mod* (computed more efficiently than
1279   ``pow(base, exp) % mod``). The two-argument form ``pow(base, exp)`` is
1280   equivalent to using the power operator: ``base**exp``.
1281
1282   The arguments must have numeric types.  With mixed operand types, the
1283   coercion rules for binary arithmetic operators apply.  For :class:`int`
1284   operands, the result has the same type as the operands (after coercion)
1285   unless the second argument is negative; in that case, all arguments are
1286   converted to float and a float result is delivered.  For example, ``10**2``
1287   returns ``100``, but ``10**-2`` returns ``0.01``.
1288
1289   For :class:`int` operands *base* and *exp*, if *mod* is present, *mod* must
1290   also be of integer type and *mod* must be nonzero. If *mod* is present and
1291   *exp* is negative, *base* must be relatively prime to *mod*. In that case,
1292   ``pow(inv_base, -exp, mod)`` is returned, where *inv_base* is an inverse to
1293   *base* modulo *mod*.
1294
1295   Here's an example of computing an inverse for ``38`` modulo ``97``::
1296
1297      >>> pow(38, -1, mod=97)
1298      23
1299      >>> 23 * 38 % 97 == 1
1300      True
1301
1302   .. versionchanged:: 3.8
1303      For :class:`int` operands, the three-argument form of ``pow`` now allows
1304      the second argument to be negative, permitting computation of modular
1305      inverses.
1306
1307   .. versionchanged:: 3.9
1308      Allow keyword arguments.  Formerly, only positional arguments were
1309      supported.
1310
1311
1312.. function:: print(*objects, sep=' ', end='\\n', file=sys.stdout, flush=False)
1313
1314   Print *objects* to the text stream *file*, separated by *sep* and followed
1315   by *end*.  *sep*, *end*, *file* and *flush*, if present, must be given as keyword
1316   arguments.
1317
1318   All non-keyword arguments are converted to strings like :func:`str` does and
1319   written to the stream, separated by *sep* and followed by *end*.  Both *sep*
1320   and *end* must be strings; they can also be ``None``, which means to use the
1321   default values.  If no *objects* are given, :func:`print` will just write
1322   *end*.
1323
1324   The *file* argument must be an object with a ``write(string)`` method; if it
1325   is not present or ``None``, :data:`sys.stdout` will be used.  Since printed
1326   arguments are converted to text strings, :func:`print` cannot be used with
1327   binary mode file objects.  For these, use ``file.write(...)`` instead.
1328
1329   Whether output is buffered is usually determined by *file*, but if the
1330   *flush* keyword argument is true, the stream is forcibly flushed.
1331
1332   .. versionchanged:: 3.3
1333      Added the *flush* keyword argument.
1334
1335
1336.. class:: property(fget=None, fset=None, fdel=None, doc=None)
1337
1338   Return a property attribute.
1339
1340   *fget* is a function for getting an attribute value.  *fset* is a function
1341   for setting an attribute value. *fdel* is a function for deleting an attribute
1342   value.  And *doc* creates a docstring for the attribute.
1343
1344   A typical use is to define a managed attribute ``x``::
1345
1346      class C:
1347          def __init__(self):
1348              self._x = None
1349
1350          def getx(self):
1351              return self._x
1352
1353          def setx(self, value):
1354              self._x = value
1355
1356          def delx(self):
1357              del self._x
1358
1359          x = property(getx, setx, delx, "I'm the 'x' property.")
1360
1361   If *c* is an instance of *C*, ``c.x`` will invoke the getter,
1362   ``c.x = value`` will invoke the setter and ``del c.x`` the deleter.
1363
1364   If given, *doc* will be the docstring of the property attribute. Otherwise, the
1365   property will copy *fget*'s docstring (if it exists).  This makes it possible to
1366   create read-only properties easily using :func:`property` as a :term:`decorator`::
1367
1368      class Parrot:
1369          def __init__(self):
1370              self._voltage = 100000
1371
1372          @property
1373          def voltage(self):
1374              """Get the current voltage."""
1375              return self._voltage
1376
1377   The ``@property`` decorator turns the :meth:`voltage` method into a "getter"
1378   for a read-only attribute with the same name, and it sets the docstring for
1379   *voltage* to "Get the current voltage."
1380
1381   A property object has :attr:`~property.getter`, :attr:`~property.setter`,
1382   and :attr:`~property.deleter` methods usable as decorators that create a
1383   copy of the property with the corresponding accessor function set to the
1384   decorated function.  This is best explained with an example::
1385
1386      class C:
1387          def __init__(self):
1388              self._x = None
1389
1390          @property
1391          def x(self):
1392              """I'm the 'x' property."""
1393              return self._x
1394
1395          @x.setter
1396          def x(self, value):
1397              self._x = value
1398
1399          @x.deleter
1400          def x(self):
1401              del self._x
1402
1403   This code is exactly equivalent to the first example.  Be sure to give the
1404   additional functions the same name as the original property (``x`` in this
1405   case.)
1406
1407   The returned property object also has the attributes ``fget``, ``fset``, and
1408   ``fdel`` corresponding to the constructor arguments.
1409
1410   .. versionchanged:: 3.5
1411      The docstrings of property objects are now writeable.
1412
1413
1414.. _func-range:
1415.. function:: range(stop)
1416              range(start, stop[, step])
1417   :noindex:
1418
1419   Rather than being a function, :class:`range` is actually an immutable
1420   sequence type, as documented in :ref:`typesseq-range` and :ref:`typesseq`.
1421
1422
1423.. function:: repr(object)
1424
1425   Return a string containing a printable representation of an object.  For many
1426   types, this function makes an attempt to return a string that would yield an
1427   object with the same value when passed to :func:`eval`, otherwise the
1428   representation is a string enclosed in angle brackets that contains the name
1429   of the type of the object together with additional information often
1430   including the name and address of the object.  A class can control what this
1431   function returns for its instances by defining a :meth:`__repr__` method.
1432
1433
1434.. function:: reversed(seq)
1435
1436   Return a reverse :term:`iterator`.  *seq* must be an object which has
1437   a :meth:`__reversed__` method or supports the sequence protocol (the
1438   :meth:`__len__` method and the :meth:`__getitem__` method with integer
1439   arguments starting at ``0``).
1440
1441
1442.. function:: round(number[, ndigits])
1443
1444   Return *number* rounded to *ndigits* precision after the decimal
1445   point.  If *ndigits* is omitted or is ``None``, it returns the
1446   nearest integer to its input.
1447
1448   For the built-in types supporting :func:`round`, values are rounded to the
1449   closest multiple of 10 to the power minus *ndigits*; if two multiples are
1450   equally close, rounding is done toward the even choice (so, for example,
1451   both ``round(0.5)`` and ``round(-0.5)`` are ``0``, and ``round(1.5)`` is
1452   ``2``).  Any integer value is valid for *ndigits* (positive, zero, or
1453   negative).  The return value is an integer if *ndigits* is omitted or
1454   ``None``.
1455   Otherwise the return value has the same type as *number*.
1456
1457   For a general Python object ``number``, ``round`` delegates to
1458   ``number.__round__``.
1459
1460   .. note::
1461
1462      The behavior of :func:`round` for floats can be surprising: for example,
1463      ``round(2.675, 2)`` gives ``2.67`` instead of the expected ``2.68``.
1464      This is not a bug: it's a result of the fact that most decimal fractions
1465      can't be represented exactly as a float.  See :ref:`tut-fp-issues` for
1466      more information.
1467
1468
1469.. _func-set:
1470.. class:: set([iterable])
1471   :noindex:
1472
1473   Return a new :class:`set` object, optionally with elements taken from
1474   *iterable*.  ``set`` is a built-in class.  See :class:`set` and
1475   :ref:`types-set` for documentation about this class.
1476
1477   For other containers see the built-in :class:`frozenset`, :class:`list`,
1478   :class:`tuple`, and :class:`dict` classes, as well as the :mod:`collections`
1479   module.
1480
1481
1482.. function:: setattr(object, name, value)
1483
1484   This is the counterpart of :func:`getattr`.  The arguments are an object, a
1485   string and an arbitrary value.  The string may name an existing attribute or a
1486   new attribute.  The function assigns the value to the attribute, provided the
1487   object allows it.  For example, ``setattr(x, 'foobar', 123)`` is equivalent to
1488   ``x.foobar = 123``.
1489
1490
1491.. class:: slice(stop)
1492           slice(start, stop[, step])
1493
1494   .. index:: single: Numerical Python
1495
1496   Return a :term:`slice` object representing the set of indices specified by
1497   ``range(start, stop, step)``.  The *start* and *step* arguments default to
1498   ``None``.  Slice objects have read-only data attributes :attr:`~slice.start`,
1499   :attr:`~slice.stop` and :attr:`~slice.step` which merely return the argument
1500   values (or their default).  They have no other explicit functionality;
1501   however they are used by Numerical Python and other third party extensions.
1502   Slice objects are also generated when extended indexing syntax is used.  For
1503   example: ``a[start:stop:step]`` or ``a[start:stop, i]``.  See
1504   :func:`itertools.islice` for an alternate version that returns an iterator.
1505
1506
1507.. function:: sorted(iterable, *, key=None, reverse=False)
1508
1509   Return a new sorted list from the items in *iterable*.
1510
1511   Has two optional arguments which must be specified as keyword arguments.
1512
1513   *key* specifies a function of one argument that is used to extract a comparison
1514   key from each element in *iterable* (for example, ``key=str.lower``).  The
1515   default value is ``None`` (compare the elements directly).
1516
1517   *reverse* is a boolean value.  If set to ``True``, then the list elements are
1518   sorted as if each comparison were reversed.
1519
1520   Use :func:`functools.cmp_to_key` to convert an old-style *cmp* function to a
1521   *key* function.
1522
1523   The built-in :func:`sorted` function is guaranteed to be stable. A sort is
1524   stable if it guarantees not to change the relative order of elements that
1525   compare equal --- this is helpful for sorting in multiple passes (for
1526   example, sort by department, then by salary grade).
1527
1528   For sorting examples and a brief sorting tutorial, see :ref:`sortinghowto`.
1529
1530.. decorator:: staticmethod
1531
1532   Transform a method into a static method.
1533
1534   A static method does not receive an implicit first argument. To declare a static
1535   method, use this idiom::
1536
1537      class C:
1538          @staticmethod
1539          def f(arg1, arg2, ...): ...
1540
1541   The ``@staticmethod`` form is a function :term:`decorator` -- see
1542   :ref:`function` for details.
1543
1544   A static method can be called either on the class (such as ``C.f()``) or on an instance (such
1545   as ``C().f()``).
1546
1547   Static methods in Python are similar to those found in Java or C++. Also see
1548   :func:`classmethod` for a variant that is useful for creating alternate class
1549   constructors.
1550
1551   Like all decorators, it is also possible to call ``staticmethod`` as
1552   a regular function and do something with its result.  This is needed
1553   in some cases where you need a reference to a function from a class
1554   body and you want to avoid the automatic transformation to instance
1555   method.  For these cases, use this idiom::
1556
1557      class C:
1558          builtin_open = staticmethod(open)
1559
1560   For more information on static methods, see :ref:`types`.
1561
1562
1563.. index::
1564   single: string; str() (built-in function)
1565
1566.. _func-str:
1567.. class:: str(object='')
1568           str(object=b'', encoding='utf-8', errors='strict')
1569   :noindex:
1570
1571   Return a :class:`str` version of *object*.  See :func:`str` for details.
1572
1573   ``str`` is the built-in string :term:`class`.  For general information
1574   about strings, see :ref:`textseq`.
1575
1576
1577.. function:: sum(iterable, /, start=0)
1578
1579   Sums *start* and the items of an *iterable* from left to right and returns the
1580   total.  The *iterable*'s items are normally numbers, and the start value is not
1581   allowed to be a string.
1582
1583   For some use cases, there are good alternatives to :func:`sum`.
1584   The preferred, fast way to concatenate a sequence of strings is by calling
1585   ``''.join(sequence)``.  To add floating point values with extended precision,
1586   see :func:`math.fsum`\.  To concatenate a series of iterables, consider using
1587   :func:`itertools.chain`.
1588
1589   .. versionchanged:: 3.8
1590      The *start* parameter can be specified as a keyword argument.
1591
1592.. function:: super([type[, object-or-type]])
1593
1594   Return a proxy object that delegates method calls to a parent or sibling
1595   class of *type*.  This is useful for accessing inherited methods that have
1596   been overridden in a class.
1597
1598   The *object-or-type* determines the :term:`method resolution order`
1599   to be searched.  The search starts from the class right after the
1600   *type*.
1601
1602   For example, if :attr:`~class.__mro__` of *object-or-type* is
1603   ``D -> B -> C -> A -> object`` and the value of *type* is ``B``,
1604   then :func:`super` searches ``C -> A -> object``.
1605
1606   The :attr:`~class.__mro__` attribute of the *object-or-type* lists the method
1607   resolution search order used by both :func:`getattr` and :func:`super`.  The
1608   attribute is dynamic and can change whenever the inheritance hierarchy is
1609   updated.
1610
1611   If the second argument is omitted, the super object returned is unbound.  If
1612   the second argument is an object, ``isinstance(obj, type)`` must be true.  If
1613   the second argument is a type, ``issubclass(type2, type)`` must be true (this
1614   is useful for classmethods).
1615
1616   There are two typical use cases for *super*.  In a class hierarchy with
1617   single inheritance, *super* can be used to refer to parent classes without
1618   naming them explicitly, thus making the code more maintainable.  This use
1619   closely parallels the use of *super* in other programming languages.
1620
1621   The second use case is to support cooperative multiple inheritance in a
1622   dynamic execution environment.  This use case is unique to Python and is
1623   not found in statically compiled languages or languages that only support
1624   single inheritance.  This makes it possible to implement "diamond diagrams"
1625   where multiple base classes implement the same method.  Good design dictates
1626   that this method have the same calling signature in every case (because the
1627   order of calls is determined at runtime, because that order adapts
1628   to changes in the class hierarchy, and because that order can include
1629   sibling classes that are unknown prior to runtime).
1630
1631   For both use cases, a typical superclass call looks like this::
1632
1633      class C(B):
1634          def method(self, arg):
1635              super().method(arg)    # This does the same thing as:
1636                                     # super(C, self).method(arg)
1637
1638   In addition to method lookups, :func:`super` also works for attribute
1639   lookups.  One possible use case for this is calling :term:`descriptors <descriptor>`
1640   in a parent or sibling class.
1641
1642   Note that :func:`super` is implemented as part of the binding process for
1643   explicit dotted attribute lookups such as ``super().__getitem__(name)``.
1644   It does so by implementing its own :meth:`__getattribute__` method for searching
1645   classes in a predictable order that supports cooperative multiple inheritance.
1646   Accordingly, :func:`super` is undefined for implicit lookups using statements or
1647   operators such as ``super()[name]``.
1648
1649   Also note that, aside from the zero argument form, :func:`super` is not
1650   limited to use inside methods.  The two argument form specifies the
1651   arguments exactly and makes the appropriate references.  The zero
1652   argument form only works inside a class definition, as the compiler fills
1653   in the necessary details to correctly retrieve the class being defined,
1654   as well as accessing the current instance for ordinary methods.
1655
1656   For practical suggestions on how to design cooperative classes using
1657   :func:`super`, see `guide to using super()
1658   <https://rhettinger.wordpress.com/2011/05/26/super-considered-super/>`_.
1659
1660
1661.. _func-tuple:
1662.. function:: tuple([iterable])
1663   :noindex:
1664
1665   Rather than being a function, :class:`tuple` is actually an immutable
1666   sequence type, as documented in :ref:`typesseq-tuple` and :ref:`typesseq`.
1667
1668
1669.. class:: type(object)
1670           type(name, bases, dict)
1671
1672   .. index:: object: type
1673
1674   With one argument, return the type of an *object*.  The return value is a
1675   type object and generally the same object as returned by
1676   :attr:`object.__class__ <instance.__class__>`.
1677
1678   The :func:`isinstance` built-in function is recommended for testing the type
1679   of an object, because it takes subclasses into account.
1680
1681
1682   With three arguments, return a new type object.  This is essentially a
1683   dynamic form of the :keyword:`class` statement. The *name* string is the
1684   class name and becomes the :attr:`~definition.__name__` attribute; the *bases*
1685   tuple itemizes the base classes and becomes the :attr:`~class.__bases__`
1686   attribute; and the *dict* dictionary is the namespace containing definitions
1687   for class body and is copied to a standard dictionary to become the
1688   :attr:`~object.__dict__` attribute.  For example, the following two
1689   statements create identical :class:`type` objects:
1690
1691      >>> class X:
1692      ...     a = 1
1693      ...
1694      >>> X = type('X', (object,), dict(a=1))
1695
1696   See also :ref:`bltin-type-objects`.
1697
1698   .. versionchanged:: 3.6
1699      Subclasses of :class:`type` which don't override ``type.__new__`` may no
1700      longer use the one-argument form to get the type of an object.
1701
1702.. function:: vars([object])
1703
1704   Return the :attr:`~object.__dict__` attribute for a module, class, instance,
1705   or any other object with a :attr:`~object.__dict__` attribute.
1706
1707   Objects such as modules and instances have an updateable :attr:`~object.__dict__`
1708   attribute; however, other objects may have write restrictions on their
1709   :attr:`~object.__dict__` attributes (for example, classes use a
1710   :class:`types.MappingProxyType` to prevent direct dictionary updates).
1711
1712   Without an argument, :func:`vars` acts like :func:`locals`.  Note, the
1713   locals dictionary is only useful for reads since updates to the locals
1714   dictionary are ignored.
1715
1716
1717.. function:: zip(*iterables)
1718
1719   Make an iterator that aggregates elements from each of the iterables.
1720
1721   Returns an iterator of tuples, where the *i*-th tuple contains
1722   the *i*-th element from each of the argument sequences or iterables.  The
1723   iterator stops when the shortest input iterable is exhausted. With a single
1724   iterable argument, it returns an iterator of 1-tuples.  With no arguments,
1725   it returns an empty iterator.  Equivalent to::
1726
1727        def zip(*iterables):
1728            # zip('ABCD', 'xy') --> Ax By
1729            sentinel = object()
1730            iterators = [iter(it) for it in iterables]
1731            while iterators:
1732                result = []
1733                for it in iterators:
1734                    elem = next(it, sentinel)
1735                    if elem is sentinel:
1736                        return
1737                    result.append(elem)
1738                yield tuple(result)
1739
1740   The left-to-right evaluation order of the iterables is guaranteed. This
1741   makes possible an idiom for clustering a data series into n-length groups
1742   using ``zip(*[iter(s)]*n)``.  This repeats the *same* iterator ``n`` times
1743   so that each output tuple has the result of ``n`` calls to the iterator.
1744   This has the effect of dividing the input into n-length chunks.
1745
1746   :func:`zip` should only be used with unequal length inputs when you don't
1747   care about trailing, unmatched values from the longer iterables.  If those
1748   values are important, use :func:`itertools.zip_longest` instead.
1749
1750   :func:`zip` in conjunction with the ``*`` operator can be used to unzip a
1751   list::
1752
1753      >>> x = [1, 2, 3]
1754      >>> y = [4, 5, 6]
1755      >>> zipped = zip(x, y)
1756      >>> list(zipped)
1757      [(1, 4), (2, 5), (3, 6)]
1758      >>> x2, y2 = zip(*zip(x, y))
1759      >>> x == list(x2) and y == list(y2)
1760      True
1761
1762
1763.. function:: __import__(name, globals=None, locals=None, fromlist=(), level=0)
1764
1765   .. index::
1766      statement: import
1767      module: imp
1768
1769   .. note::
1770
1771      This is an advanced function that is not needed in everyday Python
1772      programming, unlike :func:`importlib.import_module`.
1773
1774   This function is invoked by the :keyword:`import` statement.  It can be
1775   replaced (by importing the :mod:`builtins` module and assigning to
1776   ``builtins.__import__``) in order to change semantics of the
1777   :keyword:`!import` statement, but doing so is **strongly** discouraged as it
1778   is usually simpler to use import hooks (see :pep:`302`) to attain the same
1779   goals and does not cause issues with code which assumes the default import
1780   implementation is in use.  Direct use of :func:`__import__` is also
1781   discouraged in favor of :func:`importlib.import_module`.
1782
1783   The function imports the module *name*, potentially using the given *globals*
1784   and *locals* to determine how to interpret the name in a package context.
1785   The *fromlist* gives the names of objects or submodules that should be
1786   imported from the module given by *name*.  The standard implementation does
1787   not use its *locals* argument at all, and uses its *globals* only to
1788   determine the package context of the :keyword:`import` statement.
1789
1790   *level* specifies whether to use absolute or relative imports. ``0`` (the
1791   default) means only perform absolute imports.  Positive values for
1792   *level* indicate the number of parent directories to search relative to the
1793   directory of the module calling :func:`__import__` (see :pep:`328` for the
1794   details).
1795
1796   When the *name* variable is of the form ``package.module``, normally, the
1797   top-level package (the name up till the first dot) is returned, *not* the
1798   module named by *name*.  However, when a non-empty *fromlist* argument is
1799   given, the module named by *name* is returned.
1800
1801   For example, the statement ``import spam`` results in bytecode resembling the
1802   following code::
1803
1804      spam = __import__('spam', globals(), locals(), [], 0)
1805
1806   The statement ``import spam.ham`` results in this call::
1807
1808      spam = __import__('spam.ham', globals(), locals(), [], 0)
1809
1810   Note how :func:`__import__` returns the toplevel module here because this is
1811   the object that is bound to a name by the :keyword:`import` statement.
1812
1813   On the other hand, the statement ``from spam.ham import eggs, sausage as
1814   saus`` results in ::
1815
1816      _temp = __import__('spam.ham', globals(), locals(), ['eggs', 'sausage'], 0)
1817      eggs = _temp.eggs
1818      saus = _temp.sausage
1819
1820   Here, the ``spam.ham`` module is returned from :func:`__import__`.  From this
1821   object, the names to import are retrieved and assigned to their respective
1822   names.
1823
1824   If you simply want to import a module (potentially within a package) by name,
1825   use :func:`importlib.import_module`.
1826
1827   .. versionchanged:: 3.3
1828      Negative values for *level* are no longer supported (which also changes
1829      the default value to 0).
1830
1831
1832.. rubric:: Footnotes
1833
1834.. [#] Note that the parser only accepts the Unix-style end of line convention.
1835   If you are reading the code from a file, make sure to use newline conversion
1836   mode to convert Windows or Mac-style newlines.
1837