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