1.. XXX document all delegations to __special__ methods 2.. _built-in-funcs: 3 4Built-in Functions 5================== 6 7The Python interpreter has a number of functions and types built into it that 8are always available. They are listed here in alphabetical order. 9 10=================== ================= ================== ================== ==================== 11.. .. Built-in Functions .. .. 12=================== ================= ================== ================== ==================== 13:func:`abs` :func:`delattr` :func:`hash` |func-memoryview|_ |func-set|_ 14:func:`all` |func-dict|_ :func:`help` :func:`min` :func:`setattr` 15:func:`any` :func:`dir` :func:`hex` :func:`next` :func:`slice` 16:func:`ascii` :func:`divmod` :func:`id` :func:`object` :func:`sorted` 17:func:`bin` :func:`enumerate` :func:`input` :func:`oct` :func:`staticmethod` 18:func:`bool` :func:`eval` :func:`int` :func:`open` |func-str|_ 19:func:`breakpoint` :func:`exec` :func:`isinstance` :func:`ord` :func:`sum` 20|func-bytearray|_ :func:`filter` :func:`issubclass` :func:`pow` :func:`super` 21|func-bytes|_ :func:`float` :func:`iter` :func:`print` |func-tuple|_ 22:func:`callable` :func:`format` :func:`len` :func:`property` :func:`type` 23:func:`chr` |func-frozenset|_ |func-list|_ |func-range|_ :func:`vars` 24:func:`classmethod` :func:`getattr` :func:`locals` :func:`repr` :func:`zip` 25:func:`compile` :func:`globals` :func:`map` :func:`reversed` :func:`__import__` 26:func:`complex` :func:`hasattr` :func:`max` :func:`round` 27=================== ================= ================== ================== ==================== 28 29.. using :func:`dict` would create a link to another page, so local targets are 30 used, with replacement texts to make the output in the table consistent 31 32.. |func-dict| replace:: ``dict()`` 33.. |func-frozenset| replace:: ``frozenset()`` 34.. |func-memoryview| replace:: ``memoryview()`` 35.. |func-set| replace:: ``set()`` 36.. |func-list| replace:: ``list()`` 37.. |func-str| replace:: ``str()`` 38.. |func-tuple| replace:: ``tuple()`` 39.. |func-range| replace:: ``range()`` 40.. |func-bytearray| replace:: ``bytearray()`` 41.. |func-bytes| replace:: ``bytes()`` 42 43.. function:: abs(x) 44 45 Return the absolute value of a number. The argument may be an 46 integer or a floating point number. If the argument is a complex number, its 47 magnitude is returned. 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 handled—this 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