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