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