1 2 .. _built-in-funcs: 3 4 Built-in Functions 5 ================== 6 7 The Python interpreter has a number of functions built into it that are always 8 available. They are listed here in alphabetical order. 9 10 =================== ================= ================== ================= ==================== 11 .. .. Built-in Functions .. .. 12 =================== ================= ================== ================= ==================== 13 :func:`abs` :func:`divmod` :func:`input` :func:`open` :func:`staticmethod` 14 :func:`all` :func:`enumerate` :func:`int` :func:`ord` :func:`str` 15 :func:`any` :func:`eval` :func:`isinstance` :func:`pow` :func:`sum` 16 :func:`basestring` :func:`execfile` :func:`issubclass` :func:`print` :func:`super` 17 :func:`bin` :func:`file` :func:`iter` :func:`property` :func:`tuple` 18 :func:`bool` :func:`filter` :func:`len` :func:`range` :func:`type` 19 :func:`bytearray` :func:`float` :func:`list` :func:`raw_input` :func:`unichr` 20 :func:`callable` :func:`format` :func:`locals` :func:`reduce` :func:`unicode` 21 :func:`chr` |func-frozenset|_ :func:`long` :func:`reload` :func:`vars` 22 :func:`classmethod` :func:`getattr` :func:`map` |func-repr|_ :func:`xrange` 23 :func:`cmp` :func:`globals` :func:`max` :func:`reversed` :func:`zip` 24 :func:`compile` :func:`hasattr` |func-memoryview|_ :func:`round` :func:`__import__` 25 :func:`complex` :func:`hash` :func:`min` |func-set|_ .. 26 :func:`delattr` :func:`help` :func:`next` :func:`setattr` .. 27 |func-dict|_ :func:`hex` :func:`object` :func:`slice` .. 28 :func:`dir` :func:`id` :func:`oct` :func:`sorted` .. 29 =================== ================= ================== ================= ==================== 30 31 In addition, there are other four built-in functions that are no longer 32 considered essential: :func:`apply`, :func:`buffer`, :func:`coerce`, and 33 :func:`intern`. They are documented in the :ref:`non-essential-built-in-funcs` 34 section. 35 36 .. using :func:`dict` would create a link to another page, so local targets are 37 used, with replacement texts to make the output in the table consistent 38 39 .. |func-dict| replace:: ``dict()`` 40 .. |func-frozenset| replace:: ``frozenset()`` 41 .. |func-memoryview| replace:: ``memoryview()`` 42 .. |func-repr| replace:: ``repr()`` 43 .. |func-set| replace:: ``set()`` 44 45 46 .. function:: abs(x) 47 48 Return the absolute value of a number. The argument may be a plain or long 49 integer or a floating point number. If the argument is a complex number, its 50 magnitude is returned. 51 52 53 .. function:: all(iterable) 54 55 Return ``True`` if all elements of the *iterable* are true (or if the iterable 56 is empty). Equivalent to:: 57 58 def all(iterable): 59 for element in iterable: 60 if not element: 61 return False 62 return True 63 64 .. versionadded:: 2.5 65 66 67 .. function:: any(iterable) 68 69 Return ``True`` if any element of the *iterable* is true. If the iterable 70 is empty, return ``False``. Equivalent to:: 71 72 def any(iterable): 73 for element in iterable: 74 if element: 75 return True 76 return False 77 78 .. versionadded:: 2.5 79 80 81 .. function:: basestring() 82 83 This abstract type is the superclass for :class:`str` and :class:`unicode`. It 84 cannot be called or instantiated, but it can be used to test whether an object 85 is an instance of :class:`str` or :class:`unicode`. ``isinstance(obj, 86 basestring)`` is equivalent to ``isinstance(obj, (str, unicode))``. 87 88 .. versionadded:: 2.3 89 90 91 .. function:: bin(x) 92 93 Convert an integer number to a binary string. The result is a valid Python 94 expression. If *x* is not a Python :class:`int` object, it has to define an 95 :meth:`__index__` method that returns an integer. 96 97 .. versionadded:: 2.6 98 99 100 .. class:: bool([x]) 101 102 Return a Boolean value, i.e. one of ``True`` or ``False``. *x* is converted 103 using the standard truth testing procedure. If *x* is false or omitted, this 104 returns :const:`False`; otherwise it returns :const:`True`. :class:`bool` is 105 also a class, which is a subclass of :class:`int`. Class :class:`bool` cannot 106 be subclassed further. Its only instances are :const:`False` and 107 :const:`True`. 108 109 .. index:: pair: Boolean; type 110 111 .. versionadded:: 2.2.1 112 113 .. versionchanged:: 2.3 114 If no argument is given, this function returns :const:`False`. 115 116 117 .. class:: bytearray([source[, encoding[, errors]]]) 118 119 Return a new array of bytes. The :class:`bytearray` class is a mutable 120 sequence of integers in the range 0 <= x < 256. It has most of the usual 121 methods of mutable sequences, described in :ref:`typesseq-mutable`, as well 122 as most methods that the :class:`str` type has, see :ref:`string-methods`. 123 124 The optional *source* parameter can be used to initialize the array in a few 125 different ways: 126 127 * If it is *unicode*, you must also give the *encoding* (and optionally, 128 *errors*) parameters; :func:`bytearray` then converts the unicode to 129 bytes using :meth:`unicode.encode`. 130 131 * If it is an *integer*, the array will have that size and will be 132 initialized with null bytes. 133 134 * If it is an object conforming to the *buffer* interface, a read-only buffer 135 of the object will be used to initialize the bytes array. 136 137 * If it is an *iterable*, it must be an iterable of integers in the range 138 ``0 <= x < 256``, which are used as the initial contents of the array. 139 140 Without an argument, an array of size 0 is created. 141 142 .. versionadded:: 2.6 143 144 145 .. function:: callable(object) 146 147 Return :const:`True` if the *object* argument appears callable, 148 :const:`False` if not. If this 149 returns true, it is still possible that a call fails, but if it is false, 150 calling *object* will never succeed. Note that classes are callable (calling a 151 class returns a new instance); class instances are callable if they have a 152 :meth:`__call__` method. 153 154 155 .. function:: chr(i) 156 157 Return a string of one character whose ASCII code is the integer *i*. For 158 example, ``chr(97)`` returns the string ``'a'``. This is the inverse of 159 :func:`ord`. The argument must be in the range [0..255], inclusive; 160 :exc:`ValueError` will be raised if *i* is outside that range. See 161 also :func:`unichr`. 162 163 164 .. function:: classmethod(function) 165 166 Return a class method for *function*. 167 168 A class method receives the class as implicit first argument, just like an 169 instance method receives the instance. To declare a class method, use this 170 idiom:: 171 172 class C(object): 173 @classmethod 174 def f(cls, arg1, arg2, ...): 175 ... 176 177 The ``@classmethod`` form is a function :term:`decorator` -- see the description 178 of function definitions in :ref:`function` for details. 179 180 It can be called either on the class (such as ``C.f()``) or on an instance (such 181 as ``C().f()``). The instance is ignored except for its class. If a class 182 method is called for a derived class, the derived class object is passed as the 183 implied first argument. 184 185 Class methods are different than C++ or Java static methods. If you want those, 186 see :func:`staticmethod` in this section. 187 188 For more information on class methods, consult the documentation on the standard 189 type hierarchy in :ref:`types`. 190 191 .. versionadded:: 2.2 192 193 .. versionchanged:: 2.4 194 Function decorator syntax added. 195 196 197 .. function:: cmp(x, y) 198 199 Compare the two objects *x* and *y* and return an integer according to the 200 outcome. The return value is negative if ``x < y``, zero if ``x == y`` and 201 strictly positive if ``x > y``. 202 203 204 .. function:: compile(source, filename, mode[, flags[, dont_inherit]]) 205 206 Compile the *source* into a code or AST object. Code objects can be executed 207 by an :keyword:`exec` statement or evaluated by a call to :func:`eval`. 208 *source* can either be a Unicode string, a *Latin-1* encoded string or an 209 AST object. 210 Refer to the :mod:`ast` module documentation for information on how to work 211 with AST objects. 212 213 The *filename* argument should give the file from which the code was read; 214 pass some recognizable value if it wasn't read from a file (``'<string>'`` is 215 commonly used). 216 217 The *mode* argument specifies what kind of code must be compiled; it can be 218 ``'exec'`` if *source* consists of a sequence of statements, ``'eval'`` if it 219 consists of a single expression, or ``'single'`` if it consists of a single 220 interactive statement (in the latter case, expression statements that 221 evaluate to something other than ``None`` will be printed). 222 223 The optional arguments *flags* and *dont_inherit* control which future 224 statements (see :pep:`236`) affect the compilation of *source*. If neither 225 is present (or both are zero) the code is compiled with those future 226 statements that are in effect in the code that is calling :func:`compile`. If the 227 *flags* argument is given and *dont_inherit* is not (or is zero) then the 228 future statements specified by the *flags* argument are used in addition to 229 those that would be used anyway. If *dont_inherit* is a non-zero integer then 230 the *flags* argument is it -- the future statements in effect around the call 231 to compile are ignored. 232 233 Future statements are specified by bits which can be bitwise ORed together to 234 specify multiple statements. The bitfield required to specify a given feature 235 can be found as the :attr:`~__future__._Feature.compiler_flag` attribute on 236 the :class:`~__future__._Feature` instance in the :mod:`__future__` module. 237 238 This function raises :exc:`SyntaxError` if the compiled source is invalid, 239 and :exc:`TypeError` if the source contains null bytes. 240 241 If you want to parse Python code into its AST representation, see 242 :func:`ast.parse`. 243 244 .. note:: 245 246 When compiling a string with multi-line code in ``'single'`` or 247 ``'eval'`` mode, input must be terminated by at least one newline 248 character. This is to facilitate detection of incomplete and complete 249 statements in the :mod:`code` module. 250 251 .. versionchanged:: 2.3 252 The *flags* and *dont_inherit* arguments were added. 253 254 .. versionchanged:: 2.6 255 Support for compiling AST objects. 256 257 .. versionchanged:: 2.7 258 Allowed use of Windows and Mac newlines. Also input in ``'exec'`` mode 259 does not have to end in a newline anymore. 260 261 262 .. class:: complex([real[, imag]]) 263 264 Return a complex number with the value *real* + *imag*\*1j or convert a string or 265 number to a complex number. If the first parameter is a string, it will be 266 interpreted as a complex number and the function must be called without a second 267 parameter. The second parameter can never be a string. Each argument may be any 268 numeric type (including complex). If *imag* is omitted, it defaults to zero and 269 the function serves as a numeric conversion function like :func:`int`, 270 :func:`long` and :func:`float`. If both arguments are omitted, returns ``0j``. 271 272 .. note:: 273 274 When converting from a string, the string must not contain whitespace 275 around the central ``+`` or ``-`` operator. For example, 276 ``complex('1+2j')`` is fine, but ``complex('1 + 2j')`` raises 277 :exc:`ValueError`. 278 279 The complex type is described in :ref:`typesnumeric`. 280 281 282 .. function:: delattr(object, name) 283 284 This is a relative of :func:`setattr`. The arguments are an object and a 285 string. The string must be the name of one of the object's attributes. The 286 function deletes the named attribute, provided the object allows it. For 287 example, ``delattr(x, 'foobar')`` is equivalent to ``del x.foobar``. 288 289 290 .. _func-dict: 291 .. class:: dict(**kwarg) 292 dict(mapping, **kwarg) 293 dict(iterable, **kwarg) 294 :noindex: 295 296 Create a new dictionary. The :class:`dict` object is the dictionary class. 297 See :class:`dict` and :ref:`typesmapping` for documentation about this class. 298 299 For other containers see the built-in :class:`list`, :class:`set`, and 300 :class:`tuple` classes, as well as the :mod:`collections` module. 301 302 303 .. function:: dir([object]) 304 305 Without arguments, return the list of names in the current local scope. With an 306 argument, attempt to return a list of valid attributes for that object. 307 308 If the object has a method named :meth:`__dir__`, this method will be called and 309 must return the list of attributes. This allows objects that implement a custom 310 :func:`__getattr__` or :func:`__getattribute__` function to customize the way 311 :func:`dir` reports their attributes. 312 313 If the object does not provide :meth:`__dir__`, the function tries its best to 314 gather information from the object's :attr:`~object.__dict__` attribute, if defined, and 315 from its type object. The resulting list is not necessarily complete, and may 316 be inaccurate when the object has a custom :func:`__getattr__`. 317 318 The default :func:`dir` mechanism behaves differently with different types of 319 objects, as it attempts to produce the most relevant, rather than complete, 320 information: 321 322 * If the object is a module object, the list contains the names of the module's 323 attributes. 324 325 * If the object is a type or class object, the list contains the names of its 326 attributes, and recursively of the attributes of its bases. 327 328 * Otherwise, the list contains the object's attributes' names, the names of its 329 class's attributes, and recursively of the attributes of its class's base 330 classes. 331 332 The resulting list is sorted alphabetically. For example: 333 334 >>> import struct 335 >>> dir() # show the names in the module namespace 336 ['__builtins__', '__doc__', '__name__', 'struct'] 337 >>> dir(struct) # show the names in the struct module 338 ['Struct', '__builtins__', '__doc__', '__file__', '__name__', 339 '__package__', '_clearcache', 'calcsize', 'error', 'pack', 'pack_into', 340 'unpack', 'unpack_from'] 341 >>> class Shape(object): 342 def __dir__(self): 343 return ['area', 'perimeter', 'location'] 344 >>> s = Shape() 345 >>> dir(s) 346 ['area', 'perimeter', 'location'] 347 348 .. note:: 349 350 Because :func:`dir` is supplied primarily as a convenience for use at an 351 interactive prompt, it tries to supply an interesting set of names more than it 352 tries to supply a rigorously or consistently defined set of names, and its 353 detailed behavior may change across releases. For example, metaclass attributes 354 are not in the result list when the argument is a class. 355 356 357 .. function:: divmod(a, b) 358 359 Take two (non complex) numbers as arguments and return a pair of numbers 360 consisting of their quotient and remainder when using long division. With mixed 361 operand types, the rules for binary arithmetic operators apply. For plain and 362 long integers, the result is the same as ``(a // b, a % b)``. For floating point 363 numbers the result is ``(q, a % b)``, where *q* is usually ``math.floor(a / b)`` 364 but may be 1 less than that. In any case ``q * b + a % b`` is very close to 365 *a*, if ``a % b`` is non-zero it has the same sign as *b*, and ``0 <= abs(a % b) 366 < abs(b)``. 367 368 .. versionchanged:: 2.3 369 Using :func:`divmod` with complex numbers is deprecated. 370 371 372 .. function:: enumerate(sequence, start=0) 373 374 Return an enumerate object. *sequence* must be a sequence, an 375 :term:`iterator`, or some other object which supports iteration. The 376 :meth:`!next` method of the iterator returned by :func:`enumerate` returns a 377 tuple containing a count (from *start* which defaults to 0) and the 378 values obtained from iterating over *sequence*:: 379 380 >>> seasons = ['Spring', 'Summer', 'Fall', 'Winter'] 381 >>> list(enumerate(seasons)) 382 [(0, 'Spring'), (1, 'Summer'), (2, 'Fall'), (3, 'Winter')] 383 >>> list(enumerate(seasons, start=1)) 384 [(1, 'Spring'), (2, 'Summer'), (3, 'Fall'), (4, 'Winter')] 385 386 Equivalent to:: 387 388 def enumerate(sequence, start=0): 389 n = start 390 for elem in sequence: 391 yield n, elem 392 n += 1 393 394 .. versionadded:: 2.3 395 .. versionchanged:: 2.6 396 The *start* parameter was added. 397 398 399 .. function:: eval(expression[, globals[, locals]]) 400 401 The arguments are a Unicode or *Latin-1* encoded string and optional 402 globals and locals. If provided, *globals* must be a dictionary. 403 If provided, *locals* can be any mapping object. 404 405 .. versionchanged:: 2.4 406 formerly *locals* was required to be a dictionary. 407 408 The *expression* argument is parsed and evaluated as a Python expression 409 (technically speaking, a condition list) using the *globals* and *locals* 410 dictionaries as global and local namespace. If the *globals* dictionary is 411 present and lacks '__builtins__', the current globals are copied into *globals* 412 before *expression* is parsed. This means that *expression* normally has full 413 access to the standard :mod:`__builtin__` module and restricted environments are 414 propagated. If the *locals* dictionary is omitted it defaults to the *globals* 415 dictionary. If both dictionaries are omitted, the expression is executed in the 416 environment where :func:`eval` is called. The return value is the result of 417 the evaluated expression. Syntax errors are reported as exceptions. Example: 418 419 >>> x = 1 420 >>> print eval('x+1') 421 2 422 423 This function can also be used to execute arbitrary code objects (such as 424 those created by :func:`compile`). In this case pass a code object instead 425 of a string. If the code object has been compiled with ``'exec'`` as the 426 *mode* argument, :func:`eval`\'s return value will be ``None``. 427 428 Hints: dynamic execution of statements is supported by the :keyword:`exec` 429 statement. Execution of statements from a file is supported by the 430 :func:`execfile` function. The :func:`globals` and :func:`locals` functions 431 returns the current global and local dictionary, respectively, which may be 432 useful to pass around for use by :func:`eval` or :func:`execfile`. 433 434 See :func:`ast.literal_eval` for a function that can safely evaluate strings 435 with expressions containing only literals. 436 437 438 .. function:: execfile(filename[, globals[, locals]]) 439 440 This function is similar to the :keyword:`exec` statement, but parses a file 441 instead of a string. It is different from the :keyword:`import` statement in 442 that it does not use the module administration --- it reads the file 443 unconditionally and does not create a new module. [#]_ 444 445 The arguments are a file name and two optional dictionaries. The file is parsed 446 and evaluated as a sequence of Python statements (similarly to a module) using 447 the *globals* and *locals* dictionaries as global and local namespace. If 448 provided, *locals* can be any mapping object. Remember that at module level, 449 globals and locals are the same dictionary. If two separate objects are 450 passed as *globals* and *locals*, the code will be executed as if it were 451 embedded in a class definition. 452 453 .. versionchanged:: 2.4 454 formerly *locals* was required to be a dictionary. 455 456 If the *locals* dictionary is omitted it defaults to the *globals* dictionary. 457 If both dictionaries are omitted, the expression is executed in the environment 458 where :func:`execfile` is called. The return value is ``None``. 459 460 .. note:: 461 462 The default *locals* act as described for function :func:`locals` below: 463 modifications to the default *locals* dictionary should not be attempted. Pass 464 an explicit *locals* dictionary if you need to see effects of the code on 465 *locals* after function :func:`execfile` returns. :func:`execfile` cannot be 466 used reliably to modify a function's locals. 467 468 469 .. function:: file(name[, mode[, buffering]]) 470 471 Constructor function for the :class:`file` type, described further in section 472 :ref:`bltin-file-objects`. The constructor's arguments are the same as those 473 of the :func:`open` built-in function described below. 474 475 When opening a file, it's preferable to use :func:`open` instead of invoking 476 this constructor directly. :class:`file` is more suited to type testing (for 477 example, writing ``isinstance(f, file)``). 478 479 .. versionadded:: 2.2 480 481 482 .. function:: filter(function, iterable) 483 484 Construct a list from those elements of *iterable* for which *function* returns 485 true. *iterable* may be either a sequence, a container which supports 486 iteration, or an iterator. If *iterable* is a string or a tuple, the result 487 also has that type; otherwise it is always a list. If *function* is ``None``, 488 the identity function is assumed, that is, all elements of *iterable* that are 489 false are removed. 490 491 Note that ``filter(function, iterable)`` is equivalent to ``[item for item in 492 iterable if function(item)]`` if function is not ``None`` and ``[item for item 493 in iterable if item]`` if function is ``None``. 494 495 See :func:`itertools.ifilter` and :func:`itertools.ifilterfalse` for iterator 496 versions of this function, including a variation that filters for elements 497 where the *function* returns false. 498 499 500 .. class:: float([x]) 501 502 Return a floating point number constructed from a number or string *x*. 503 504 If the argument is a string, it 505 must contain a possibly signed decimal or floating point number, possibly 506 embedded in whitespace. The argument may also be [+|-]nan or [+|-]inf. 507 Otherwise, the argument may be a plain or long integer 508 or a floating point number, and a floating point number with the same value 509 (within Python's floating point precision) is returned. If no argument is 510 given, returns ``0.0``. 511 512 .. note:: 513 514 .. index:: 515 single: NaN 516 single: Infinity 517 518 When passing in a string, values for NaN and Infinity may be returned, depending 519 on the underlying C library. Float accepts the strings nan, inf and -inf for 520 NaN and positive or negative infinity. The case and a leading + are ignored as 521 well as a leading - is ignored for NaN. Float always represents NaN and infinity 522 as nan, inf or -inf. 523 524 The float type is described in :ref:`typesnumeric`. 525 526 527 .. function:: format(value[, format_spec]) 528 529 .. index:: 530 pair: str; format 531 single: __format__ 532 533 Convert a *value* to a "formatted" representation, as controlled by 534 *format_spec*. The interpretation of *format_spec* will depend on the type 535 of the *value* argument, however there is a standard formatting syntax that 536 is used by most built-in types: :ref:`formatspec`. 537 538 .. note:: 539 540 ``format(value, format_spec)`` merely calls 541 ``value.__format__(format_spec)``. 542 543 .. versionadded:: 2.6 544 545 546 .. _func-frozenset: 547 .. class:: frozenset([iterable]) 548 :noindex: 549 550 Return a new :class:`frozenset` object, optionally with elements taken from 551 *iterable*. ``frozenset`` is a built-in class. See :class:`frozenset` and 552 :ref:`types-set` for documentation about this class. 553 554 For other containers see the built-in :class:`set`, :class:`list`, 555 :class:`tuple`, and :class:`dict` classes, as well as the :mod:`collections` 556 module. 557 558 .. versionadded:: 2.4 559 560 561 .. function:: getattr(object, name[, default]) 562 563 Return the value of the named attribute of *object*. *name* must be a string. 564 If the string is the name of one of the object's attributes, the result is the 565 value of that attribute. For example, ``getattr(x, 'foobar')`` is equivalent to 566 ``x.foobar``. If the named attribute does not exist, *default* is returned if 567 provided, otherwise :exc:`AttributeError` is raised. 568 569 570 .. function:: globals() 571 572 Return a dictionary representing the current global symbol table. This is always 573 the dictionary of the current module (inside a function or method, this is the 574 module where it is defined, not the module from which it is called). 575 576 577 .. function:: hasattr(object, name) 578 579 The arguments are an object and a string. The result is ``True`` if the string 580 is the name of one of the object's attributes, ``False`` if not. (This is 581 implemented by calling ``getattr(object, name)`` and seeing whether it raises an 582 exception or not.) 583 584 585 .. function:: hash(object) 586 587 Return the hash value of the object (if it has one). Hash values are integers. 588 They are used to quickly compare dictionary keys during a dictionary lookup. 589 Numeric values that compare equal have the same hash value (even if they are of 590 different types, as is the case for 1 and 1.0). 591 592 593 .. function:: help([object]) 594 595 Invoke the built-in help system. (This function is intended for interactive 596 use.) If no argument is given, the interactive help system starts on the 597 interpreter console. If the argument is a string, then the string is looked up 598 as the name of a module, function, class, method, keyword, or documentation 599 topic, and a help page is printed on the console. If the argument is any other 600 kind of object, a help page on the object is generated. 601 602 This function is added to the built-in namespace by the :mod:`site` module. 603 604 .. versionadded:: 2.2 605 606 607 .. function:: hex(x) 608 609 Convert an integer number (of any size) to a lowercase hexadecimal string 610 prefixed with "0x", for example: 611 612 >>> hex(255) 613 '0xff' 614 >>> hex(-42) 615 '-0x2a' 616 >>> hex(1L) 617 '0x1L' 618 619 If x is not a Python :class:`int` or :class:`long` object, it has to 620 define an __index__() method that returns an integer. 621 622 See also :func:`int` for converting a hexadecimal string to an 623 integer using a base of 16. 624 625 .. note:: 626 627 To obtain a hexadecimal string representation for a float, use the 628 :meth:`float.hex` method. 629 630 .. versionchanged:: 2.4 631 Formerly only returned an unsigned literal. 632 633 634 .. function:: id(object) 635 636 Return the "identity" of an object. This is an integer (or long integer) which 637 is guaranteed to be unique and constant for this object during its lifetime. 638 Two objects with non-overlapping lifetimes may have the same :func:`id` 639 value. 640 641 .. impl-detail:: This is the address of the object in memory. 642 643 644 .. function:: input([prompt]) 645 646 Equivalent to ``eval(raw_input(prompt))``. 647 648 This function does not catch user errors. If the input is not syntactically 649 valid, a :exc:`SyntaxError` will be raised. Other exceptions may be raised if 650 there is an error during evaluation. 651 652 If the :mod:`readline` module was loaded, then :func:`input` will use it to 653 provide elaborate line editing and history features. 654 655 Consider using the :func:`raw_input` function for general input from users. 656 657 658 .. class:: int(x=0) 659 int(x, base=10) 660 661 Return an integer object constructed from a number or string *x*, or return ``0`` if no 662 arguments are given. If *x* is a number, it can be a plain integer, a long 663 integer, or a floating point number. If *x* is floating point, the conversion 664 truncates towards zero. If the argument is outside the integer range, the 665 function returns a long object instead. 666 667 If *x* is not a number or if *base* is given, then *x* must be a string or 668 Unicode object representing an :ref:`integer literal <integers>` in radix 669 *base*. Optionally, the literal can be 670 preceded by ``+`` or ``-`` (with no space in between) and surrounded by 671 whitespace. A base-n literal consists of the digits 0 to n-1, with ``a`` 672 to ``z`` (or ``A`` to ``Z``) having 673 values 10 to 35. The default *base* is 10. The allowed values are 0 and 2--36. 674 Base-2, -8, and -16 literals can be optionally prefixed with ``0b``/``0B``, 675 ``0o``/``0O``/``0``, or ``0x``/``0X``, as with integer literals in code. 676 Base 0 means to interpret the string exactly as an integer literal, so that 677 the actual base is 2, 8, 10, or 16. 678 679 The integer type is described in :ref:`typesnumeric`. 680 681 682 .. function:: isinstance(object, classinfo) 683 684 Return true if the *object* argument is an instance of the *classinfo* argument, 685 or of a (direct, indirect or :term:`virtual <abstract base class>`) subclass 686 thereof. Also return true if *classinfo* 687 is a type object (new-style class) and *object* is an object of that type or of 688 a (direct, indirect or :term:`virtual <abstract base class>`) subclass 689 thereof. If *object* is not a class instance or 690 an object of the given type, the function always returns false. 691 If *classinfo* is a tuple of class or type objects (or recursively, other 692 such tuples), return true if *object* is an instance of any of the classes 693 or types. If *classinfo* is not a class, type, or tuple of classes, types, 694 and such tuples, a :exc:`TypeError` exception is raised. 695 696 .. versionchanged:: 2.2 697 Support for a tuple of type information was added. 698 699 700 .. function:: issubclass(class, classinfo) 701 702 Return true if *class* is a subclass (direct, indirect or :term:`virtual 703 <abstract base class>`) of *classinfo*. A 704 class is considered a subclass of itself. *classinfo* may be a tuple of class 705 objects, in which case every entry in *classinfo* will be checked. In any other 706 case, a :exc:`TypeError` exception is raised. 707 708 .. versionchanged:: 2.3 709 Support for a tuple of type information was added. 710 711 712 .. function:: iter(o[, sentinel]) 713 714 Return an :term:`iterator` object. The first argument is interpreted very differently 715 depending on the presence of the second argument. Without a second argument, *o* 716 must be a collection object which supports the iteration protocol (the 717 :meth:`__iter__` method), or it must support the sequence protocol (the 718 :meth:`__getitem__` method with integer arguments starting at ``0``). If it 719 does not support either of those protocols, :exc:`TypeError` is raised. If the 720 second argument, *sentinel*, is given, then *o* must be a callable object. The 721 iterator created in this case will call *o* with no arguments for each call to 722 its :meth:`~iterator.next` method; if the value returned is equal to *sentinel*, 723 :exc:`StopIteration` will be raised, otherwise the value will be returned. 724 725 One useful application of the second form of :func:`iter` is to read lines of 726 a file until a certain line is reached. The following example reads a file 727 until the :meth:`~io.TextIOBase.readline` method returns an empty string:: 728 729 with open('mydata.txt') as fp: 730 for line in iter(fp.readline, ''): 731 process_line(line) 732 733 .. versionadded:: 2.2 734 735 736 .. function:: len(s) 737 738 Return the length (the number of items) of an object. The argument may be a 739 sequence (such as a string, bytes, tuple, list, or range) or a collection 740 (such as a dictionary, set, or frozen set). 741 742 743 .. class:: list([iterable]) 744 745 Return a list whose items are the same and in the same order as *iterable*'s 746 items. *iterable* may be either a sequence, a container that supports 747 iteration, or an iterator object. If *iterable* is already a list, a copy is 748 made and returned, similar to ``iterable[:]``. For instance, ``list('abc')`` 749 returns ``['a', 'b', 'c']`` and ``list( (1, 2, 3) )`` returns ``[1, 2, 3]``. If 750 no argument is given, returns a new empty list, ``[]``. 751 752 :class:`list` is a mutable sequence type, as documented in 753 :ref:`typesseq`. For other containers see the built in :class:`dict`, 754 :class:`set`, and :class:`tuple` classes, and the :mod:`collections` module. 755 756 757 .. function:: locals() 758 759 Update and return a dictionary representing the current local symbol table. 760 Free variables are returned by :func:`locals` when it is called in function 761 blocks, but not in class blocks. 762 763 .. note:: 764 765 The contents of this dictionary should not be modified; changes may not 766 affect the values of local and free variables used by the interpreter. 767 768 769 .. class:: long(x=0) 770 long(x, base=10) 771 772 Return a long integer object constructed from a string or number *x*. 773 If the argument is a string, it 774 must contain a possibly signed number of arbitrary size, possibly embedded in 775 whitespace. The *base* argument is interpreted in the same way as for 776 :func:`int`, and may only be given when *x* is a string. Otherwise, the argument 777 may be a plain or long integer or a floating point number, and a long integer 778 with the same value is returned. Conversion of floating point numbers to 779 integers truncates (towards zero). If no arguments are given, returns ``0L``. 780 781 The long type is described in :ref:`typesnumeric`. 782 783 784 .. function:: map(function, iterable, ...) 785 786 Apply *function* to every item of *iterable* and return a list of the results. 787 If additional *iterable* arguments are passed, *function* must take that many 788 arguments and is applied to the items from all iterables in parallel. If one 789 iterable is shorter than another it is assumed to be extended with ``None`` 790 items. If *function* is ``None``, the identity function is assumed; if there 791 are multiple arguments, :func:`map` returns a list consisting of tuples 792 containing the corresponding items from all iterables (a kind of transpose 793 operation). The *iterable* arguments may be a sequence or any iterable object; 794 the result is always a list. 795 796 797 .. function:: max(iterable[, key]) 798 max(arg1, arg2, *args[, key]) 799 800 Return the largest item in an iterable or the largest of two or more 801 arguments. 802 803 If one positional argument is provided, *iterable* must be a non-empty 804 iterable (such as a non-empty string, tuple or list). The largest item 805 in the iterable is returned. If two or more positional arguments are 806 provided, the largest of the positional arguments is returned. 807 808 The optional *key* argument specifies a one-argument ordering function like that 809 used for :meth:`list.sort`. The *key* argument, if supplied, must be in keyword 810 form (for example, ``max(a,b,c,key=func)``). 811 812 .. versionchanged:: 2.5 813 Added support for the optional *key* argument. 814 815 .. _func-memoryview: 816 .. function:: memoryview(obj) 817 :noindex: 818 819 Return a "memory view" object created from the given argument. See 820 :ref:`typememoryview` for more information. 821 822 823 .. function:: min(iterable[, key]) 824 min(arg1, arg2, *args[, key]) 825 826 Return the smallest item in an iterable or the smallest of two or more 827 arguments. 828 829 If one positional argument is provided, *iterable* must be a non-empty 830 iterable (such as a non-empty string, tuple or list). The smallest item 831 in the iterable is returned. If two or more positional arguments are 832 provided, the smallest of the positional arguments is returned. 833 834 The optional *key* argument specifies a one-argument ordering function like that 835 used for :meth:`list.sort`. The *key* argument, if supplied, must be in keyword 836 form (for example, ``min(a,b,c,key=func)``). 837 838 .. versionchanged:: 2.5 839 Added support for the optional *key* argument. 840 841 842 .. function:: next(iterator[, default]) 843 844 Retrieve the next item from the *iterator* by calling its 845 :meth:`~iterator.next` method. If *default* is given, it is returned if the 846 iterator is exhausted, otherwise :exc:`StopIteration` is raised. 847 848 .. versionadded:: 2.6 849 850 851 .. class:: object() 852 853 Return a new featureless object. :class:`object` is a base for all new style 854 classes. It has the methods that are common to all instances of new style 855 classes. 856 857 .. versionadded:: 2.2 858 859 .. versionchanged:: 2.3 860 This function does not accept any arguments. Formerly, it accepted arguments but 861 ignored them. 862 863 864 .. function:: oct(x) 865 866 Convert an integer number (of any size) to an octal string. The result is a 867 valid Python expression. 868 869 .. versionchanged:: 2.4 870 Formerly only returned an unsigned literal. 871 872 873 .. function:: open(name[, mode[, buffering]]) 874 875 Open a file, returning an object of the :class:`file` type described in 876 section :ref:`bltin-file-objects`. If the file cannot be opened, 877 :exc:`IOError` is raised. When opening a file, it's preferable to use 878 :func:`open` instead of invoking the :class:`file` constructor directly. 879 880 The first two arguments are the same as for ``stdio``'s :c:func:`fopen`: 881 *name* is the file name to be opened, and *mode* is a string indicating how 882 the file is to be opened. 883 884 The most commonly-used values of *mode* are ``'r'`` for reading, ``'w'`` for 885 writing (truncating the file if it already exists), and ``'a'`` for appending 886 (which on *some* Unix systems means that *all* writes append to the end of the 887 file regardless of the current seek position). If *mode* is omitted, it 888 defaults to ``'r'``. The default is to use text mode, which may convert 889 ``'\n'`` characters to a platform-specific representation on writing and back 890 on reading. Thus, when opening a binary file, you should append ``'b'`` to 891 the *mode* value to open the file in binary mode, which will improve 892 portability. (Appending ``'b'`` is useful even on systems that don't treat 893 binary and text files differently, where it serves as documentation.) See below 894 for more possible values of *mode*. 895 896 .. index:: 897 single: line-buffered I/O 898 single: unbuffered I/O 899 single: buffer size, I/O 900 single: I/O control; buffering 901 902 The optional *buffering* argument specifies the file's desired buffer size: 0 903 means unbuffered, 1 means line buffered, any other positive value means use a 904 buffer of (approximately) that size (in bytes). A negative *buffering* means 905 to use the system default, which is usually line buffered for tty devices and 906 fully buffered for other files. If omitted, the system default is used. [#]_ 907 908 Modes ``'r+'``, ``'w+'`` and ``'a+'`` open the file for updating (reading and writing); 909 note that ``'w+'`` truncates the file. Append ``'b'`` to the mode to open the file in 910 binary mode, on systems that differentiate between binary and text files; on 911 systems that don't have this distinction, adding the ``'b'`` has no effect. 912 913 .. index:: 914 single: universal newlines; open() built-in function 915 916 In addition to the standard :c:func:`fopen` values *mode* may be ``'U'`` or 917 ``'rU'``. Python is usually built with :term:`universal newlines` support; 918 supplying ``'U'`` opens the file as a text file, but lines may be terminated 919 by any of the following: the Unix end-of-line convention ``'\n'``, the 920 Macintosh convention ``'\r'``, or the Windows convention ``'\r\n'``. All of 921 these external representations are seen as ``'\n'`` by the Python program. 922 If Python is built without universal newlines support a *mode* with ``'U'`` 923 is the same as normal text mode. Note that file objects so opened also have 924 an attribute called :attr:`newlines` which has a value of ``None`` (if no 925 newlines have yet been seen), ``'\n'``, ``'\r'``, ``'\r\n'``, or a tuple 926 containing all the newline types seen. 927 928 Python enforces that the mode, after stripping ``'U'``, begins with ``'r'``, 929 ``'w'`` or ``'a'``. 930 931 Python provides many file handling modules including 932 :mod:`fileinput`, :mod:`os`, :mod:`os.path`, :mod:`tempfile`, and 933 :mod:`shutil`. 934 935 .. versionchanged:: 2.5 936 Restriction on first letter of mode string introduced. 937 938 939 .. function:: ord(c) 940 941 Given a string of length one, return an integer representing the Unicode code 942 point of the character when the argument is a unicode object, or the value of 943 the byte when the argument is an 8-bit string. For example, ``ord('a')`` returns 944 the integer ``97``, ``ord(u'\u2020')`` returns ``8224``. This is the inverse of 945 :func:`chr` for 8-bit strings and of :func:`unichr` for unicode objects. If a 946 unicode argument is given and Python was built with UCS2 Unicode, then the 947 character's code point must be in the range [0..65535] inclusive; otherwise the 948 string length is two, and a :exc:`TypeError` will be raised. 949 950 951 .. function:: pow(x, y[, z]) 952 953 Return *x* to the power *y*; if *z* is present, return *x* to the power *y*, 954 modulo *z* (computed more efficiently than ``pow(x, y) % z``). The two-argument 955 form ``pow(x, y)`` is equivalent to using the power operator: ``x**y``. 956 957 The arguments must have numeric types. With mixed operand types, the coercion 958 rules for binary arithmetic operators apply. For int and long int operands, the 959 result has the same type as the operands (after coercion) unless the second 960 argument is negative; in that case, all arguments are converted to float and a 961 float result is delivered. For example, ``10**2`` returns ``100``, but 962 ``10**-2`` returns ``0.01``. (This last feature was added in Python 2.2. In 963 Python 2.1 and before, if both arguments were of integer types and the second 964 argument was negative, an exception was raised.) If the second argument is 965 negative, the third argument must be omitted. If *z* is present, *x* and *y* 966 must be of integer types, and *y* must be non-negative. (This restriction was 967 added in Python 2.2. In Python 2.1 and before, floating 3-argument ``pow()`` 968 returned platform-dependent results depending on floating-point rounding 969 accidents.) 970 971 972 .. function:: print(*objects, sep=' ', end='\\n', file=sys.stdout) 973 974 Print *objects* to the stream *file*, separated by *sep* and followed by 975 *end*. *sep*, *end* and *file*, if present, must be given as keyword 976 arguments. 977 978 All non-keyword arguments are converted to strings like :func:`str` does and 979 written to the stream, separated by *sep* and followed by *end*. Both *sep* 980 and *end* must be strings; they can also be ``None``, which means to use the 981 default values. If no *objects* are given, :func:`print` will just write 982 *end*. 983 984 The *file* argument must be an object with a ``write(string)`` method; if it 985 is not present or ``None``, :data:`sys.stdout` will be used. Output buffering 986 is determined by *file*. Use ``file.flush()`` to ensure, for instance, 987 immediate appearance on a screen. 988 989 .. note:: 990 991 This function is not normally available as a built-in since the name 992 ``print`` is recognized as the :keyword:`print` statement. To disable the 993 statement and use the :func:`print` function, use this future statement at 994 the top of your module:: 995 996 from __future__ import print_function 997 998 .. versionadded:: 2.6 999 1000 1001 .. class:: property([fget[, fset[, fdel[, doc]]]]) 1002 1003 Return a property attribute for :term:`new-style class`\es (classes that 1004 derive from :class:`object`). 1005 1006 *fget* is a function for getting an attribute value. *fset* is a function 1007 for setting an attribute value. *fdel* is a function for deleting an attribute 1008 value. And *doc* creates a docstring for the attribute. 1009 1010 A typical use is to define a managed attribute ``x``:: 1011 1012 class C(object): 1013 def __init__(self): 1014 self._x = None 1015 1016 def getx(self): 1017 return self._x 1018 1019 def setx(self, value): 1020 self._x = value 1021 1022 def delx(self): 1023 del self._x 1024 1025 x = property(getx, setx, delx, "I'm the 'x' property.") 1026 1027 If *c* is an instance of *C*, ``c.x`` will invoke the getter, 1028 ``c.x = value`` will invoke the setter and ``del c.x`` the deleter. 1029 1030 If given, *doc* will be the docstring of the property attribute. Otherwise, the 1031 property will copy *fget*'s docstring (if it exists). This makes it possible to 1032 create read-only properties easily using :func:`property` as a :term:`decorator`:: 1033 1034 class Parrot(object): 1035 def __init__(self): 1036 self._voltage = 100000 1037 1038 @property 1039 def voltage(self): 1040 """Get the current voltage.""" 1041 return self._voltage 1042 1043 The ``@property`` decorator turns the :meth:`voltage` method into a "getter" 1044 for a read-only attribute with the same name, and it sets the docstring for 1045 *voltage* to "Get the current voltage." 1046 1047 A property object has :attr:`~property.getter`, :attr:`~property.setter`, 1048 and :attr:`~property.deleter` methods usable as decorators that create a 1049 copy of the property with the corresponding accessor function set to the 1050 decorated function. This is best explained with an example:: 1051 1052 class C(object): 1053 def __init__(self): 1054 self._x = None 1055 1056 @property 1057 def x(self): 1058 """I'm the 'x' property.""" 1059 return self._x 1060 1061 @x.setter 1062 def x(self, value): 1063 self._x = value 1064 1065 @x.deleter 1066 def x(self): 1067 del self._x 1068 1069 This code is exactly equivalent to the first example. Be sure to give the 1070 additional functions the same name as the original property (``x`` in this 1071 case.) 1072 1073 The returned property object also has the attributes ``fget``, ``fset``, and 1074 ``fdel`` corresponding to the constructor arguments. 1075 1076 .. versionadded:: 2.2 1077 1078 .. versionchanged:: 2.5 1079 Use *fget*'s docstring if no *doc* given. 1080 1081 .. versionchanged:: 2.6 1082 The ``getter``, ``setter``, and ``deleter`` attributes were added. 1083 1084 1085 .. function:: range(stop) 1086 range(start, stop[, step]) 1087 1088 This is a versatile function to create lists containing arithmetic progressions. 1089 It is most often used in :keyword:`for` loops. The arguments must be plain 1090 integers. If the *step* argument is omitted, it defaults to ``1``. If the 1091 *start* argument is omitted, it defaults to ``0``. The full form returns a list 1092 of plain integers ``[start, start + step, start + 2 * step, ...]``. If *step* 1093 is positive, the last element is the largest ``start + i * step`` less than 1094 *stop*; if *step* is negative, the last element is the smallest ``start + i * 1095 step`` greater than *stop*. *step* must not be zero (or else :exc:`ValueError` 1096 is raised). Example: 1097 1098 >>> range(10) 1099 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] 1100 >>> range(1, 11) 1101 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] 1102 >>> range(0, 30, 5) 1103 [0, 5, 10, 15, 20, 25] 1104 >>> range(0, 10, 3) 1105 [0, 3, 6, 9] 1106 >>> range(0, -10, -1) 1107 [0, -1, -2, -3, -4, -5, -6, -7, -8, -9] 1108 >>> range(0) 1109 [] 1110 >>> range(1, 0) 1111 [] 1112 1113 1114 .. function:: raw_input([prompt]) 1115 1116 If the *prompt* argument is present, it is written to standard output without a 1117 trailing newline. The function then reads a line from input, converts it to a 1118 string (stripping a trailing newline), and returns that. When EOF is read, 1119 :exc:`EOFError` is raised. Example:: 1120 1121 >>> s = raw_input('--> ') 1122 --> Monty Python's Flying Circus 1123 >>> s 1124 "Monty Python's Flying Circus" 1125 1126 If the :mod:`readline` module was loaded, then :func:`raw_input` will use it to 1127 provide elaborate line editing and history features. 1128 1129 1130 .. function:: reduce(function, iterable[, initializer]) 1131 1132 Apply *function* of two arguments cumulatively to the items of *iterable*, from 1133 left to right, so as to reduce the iterable to a single value. For example, 1134 ``reduce(lambda x, y: x+y, [1, 2, 3, 4, 5])`` calculates ``((((1+2)+3)+4)+5)``. 1135 The left argument, *x*, is the accumulated value and the right argument, *y*, is 1136 the update value from the *iterable*. If the optional *initializer* is present, 1137 it is placed before the items of the iterable in the calculation, and serves as 1138 a default when the iterable is empty. If *initializer* is not given and 1139 *iterable* contains only one item, the first item is returned. 1140 Roughly equivalent to:: 1141 1142 def reduce(function, iterable, initializer=None): 1143 it = iter(iterable) 1144 if initializer is None: 1145 try: 1146 initializer = next(it) 1147 except StopIteration: 1148 raise TypeError('reduce() of empty sequence with no initial value') 1149 accum_value = initializer 1150 for x in it: 1151 accum_value = function(accum_value, x) 1152 return accum_value 1153 1154 .. function:: reload(module) 1155 1156 Reload a previously imported *module*. The argument must be a module object, so 1157 it must have been successfully imported before. This is useful if you have 1158 edited the module source file using an external editor and want to try out the 1159 new version without leaving the Python interpreter. The return value is the 1160 module object (the same as the *module* argument). 1161 1162 When ``reload(module)`` is executed: 1163 1164 * Python modules' code is recompiled and the module-level code reexecuted, 1165 defining a new set of objects which are bound to names in the module's 1166 dictionary. The ``init`` function of extension modules is not called a second 1167 time. 1168 1169 * As with all other objects in Python the old objects are only reclaimed after 1170 their reference counts drop to zero. 1171 1172 * The names in the module namespace are updated to point to any new or changed 1173 objects. 1174 1175 * Other references to the old objects (such as names external to the module) are 1176 not rebound to refer to the new objects and must be updated in each namespace 1177 where they occur if that is desired. 1178 1179 There are a number of other caveats: 1180 1181 When a module is reloaded, its dictionary (containing the module's global 1182 variables) is retained. Redefinitions of names will override the old 1183 definitions, so this is generally not a problem. If the new version of a module 1184 does not define a name that was defined by the old version, the old definition 1185 remains. This feature can be used to the module's advantage if it maintains a 1186 global table or cache of objects --- with a :keyword:`try` statement it can test 1187 for the table's presence and skip its initialization if desired:: 1188 1189 try: 1190 cache 1191 except NameError: 1192 cache = {} 1193 1194 It is generally not very useful to reload built-in or dynamically loaded 1195 modules. Reloading :mod:`sys`, :mod:`__main__`, :mod:`builtins` and other 1196 key modules is not recommended. In many cases extension modules are not 1197 designed to be initialized more than once, and may fail in arbitrary ways 1198 when reloaded. 1199 1200 If a module imports objects from another module using :keyword:`from` ... 1201 :keyword:`import` ..., calling :func:`reload` for the other module does not 1202 redefine the objects imported from it --- one way around this is to re-execute 1203 the :keyword:`from` statement, another is to use :keyword:`import` and qualified 1204 names (*module*.*name*) instead. 1205 1206 If a module instantiates instances of a class, reloading the module that defines 1207 the class does not affect the method definitions of the instances --- they 1208 continue to use the old class definition. The same is true for derived classes. 1209 1210 1211 .. _func-repr: 1212 .. function:: repr(object) 1213 1214 Return a string containing a printable representation of an object. This is 1215 the same value yielded by conversions (reverse quotes). It is sometimes 1216 useful to be able to access this operation as an ordinary function. For many 1217 types, this function makes an attempt to return a string that would yield an 1218 object with the same value when passed to :func:`eval`, otherwise the 1219 representation is a string enclosed in angle brackets that contains the name 1220 of the type of the object together with additional information often 1221 including the name and address of the object. A class can control what this 1222 function returns for its instances by defining a :meth:`__repr__` method. 1223 1224 1225 .. function:: reversed(seq) 1226 1227 Return a reverse :term:`iterator`. *seq* must be an object which has 1228 a :meth:`__reversed__` method or supports the sequence protocol (the 1229 :meth:`__len__` method and the :meth:`__getitem__` method with integer 1230 arguments starting at ``0``). 1231 1232 .. versionadded:: 2.4 1233 1234 .. versionchanged:: 2.6 1235 Added the possibility to write a custom :meth:`__reversed__` method. 1236 1237 1238 .. function:: round(number[, ndigits]) 1239 1240 Return the floating point value *number* rounded to *ndigits* digits after 1241 the decimal point. If *ndigits* is omitted, it defaults to zero. The result 1242 is a floating point number. Values are rounded to the closest multiple of 1243 10 to the power minus *ndigits*; if two multiples are equally close, 1244 rounding is done away from 0 (so, for example, ``round(0.5)`` is ``1.0`` and 1245 ``round(-0.5)`` is ``-1.0``). 1246 1247 1248 .. note:: 1249 1250 The behavior of :func:`round` for floats can be surprising: for example, 1251 ``round(2.675, 2)`` gives ``2.67`` instead of the expected ``2.68``. 1252 This is not a bug: it's a result of the fact that most decimal fractions 1253 can't be represented exactly as a float. See :ref:`tut-fp-issues` for 1254 more information. 1255 1256 1257 .. _func-set: 1258 .. class:: set([iterable]) 1259 :noindex: 1260 1261 Return a new :class:`set` object, optionally with elements taken from 1262 *iterable*. ``set`` is a built-in class. See :class:`set` and 1263 :ref:`types-set` for documentation about this class. 1264 1265 For other containers see the built-in :class:`frozenset`, :class:`list`, 1266 :class:`tuple`, and :class:`dict` classes, as well as the :mod:`collections` 1267 module. 1268 1269 .. versionadded:: 2.4 1270 1271 1272 .. function:: setattr(object, name, value) 1273 1274 This is the counterpart of :func:`getattr`. The arguments are an object, a 1275 string and an arbitrary value. The string may name an existing attribute or a 1276 new attribute. The function assigns the value to the attribute, provided the 1277 object allows it. For example, ``setattr(x, 'foobar', 123)`` is equivalent to 1278 ``x.foobar = 123``. 1279 1280 1281 .. class:: slice(stop) 1282 slice(start, stop[, step]) 1283 1284 .. index:: single: Numerical Python 1285 1286 Return a :term:`slice` object representing the set of indices specified by 1287 ``range(start, stop, step)``. The *start* and *step* arguments default to 1288 ``None``. Slice objects have read-only data attributes :attr:`~slice.start`, 1289 :attr:`~slice.stop` and :attr:`~slice.step` which merely return the argument 1290 values (or their default). They have no other explicit functionality; 1291 however they are used by Numerical Python and other third party extensions. 1292 Slice objects are also generated when extended indexing syntax is used. For 1293 example: ``a[start:stop:step]`` or ``a[start:stop, i]``. See 1294 :func:`itertools.islice` for an alternate version that returns an iterator. 1295 1296 1297 .. function:: sorted(iterable[, cmp[, key[, reverse]]]) 1298 1299 Return a new sorted list from the items in *iterable*. 1300 1301 The optional arguments *cmp*, *key*, and *reverse* have the same meaning as 1302 those for the :meth:`list.sort` method (described in section 1303 :ref:`typesseq-mutable`). 1304 1305 *cmp* specifies a custom comparison function of two arguments (iterable 1306 elements) which should return a negative, zero or positive number depending on 1307 whether the first argument is considered smaller than, equal to, or larger than 1308 the second argument: ``cmp=lambda x,y: cmp(x.lower(), y.lower())``. The default 1309 value is ``None``. 1310 1311 *key* specifies a function of one argument that is used to extract a comparison 1312 key from each list element: ``key=str.lower``. The default value is ``None`` 1313 (compare the elements directly). 1314 1315 *reverse* is a boolean value. If set to ``True``, then the list elements are 1316 sorted as if each comparison were reversed. 1317 1318 In general, the *key* and *reverse* conversion processes are much faster 1319 than specifying an equivalent *cmp* function. This is because *cmp* is 1320 called multiple times for each list element while *key* and *reverse* touch 1321 each element only once. Use :func:`functools.cmp_to_key` to convert an 1322 old-style *cmp* function to a *key* function. 1323 1324 The built-in :func:`sorted` function is guaranteed to be stable. A sort is 1325 stable if it guarantees not to change the relative order of elements that 1326 compare equal --- this is helpful for sorting in multiple passes (for 1327 example, sort by department, then by salary grade). 1328 1329 For sorting examples and a brief sorting tutorial, see :ref:`sortinghowto`. 1330 1331 .. versionadded:: 2.4 1332 1333 1334 .. function:: staticmethod(function) 1335 1336 Return a static method for *function*. 1337 1338 A static method does not receive an implicit first argument. To declare a static 1339 method, use this idiom:: 1340 1341 class C(object): 1342 @staticmethod 1343 def f(arg1, arg2, ...): 1344 ... 1345 1346 The ``@staticmethod`` form is a function :term:`decorator` -- see the 1347 description of function definitions in :ref:`function` for details. 1348 1349 It can be called either on the class (such as ``C.f()``) or on an instance (such 1350 as ``C().f()``). The instance is ignored except for its class. 1351 1352 Static methods in Python are similar to those found in Java or C++. Also see 1353 :func:`classmethod` for a variant that is useful for creating alternate 1354 class constructors. 1355 1356 For more information on static methods, consult the documentation on the 1357 standard type hierarchy in :ref:`types`. 1358 1359 .. versionadded:: 2.2 1360 1361 .. versionchanged:: 2.4 1362 Function decorator syntax added. 1363 1364 1365 .. class:: str(object='') 1366 1367 Return a string containing a nicely printable representation of an object. For 1368 strings, this returns the string itself. The difference with ``repr(object)`` 1369 is that ``str(object)`` does not always attempt to return a string that is 1370 acceptable to :func:`eval`; its goal is to return a printable string. If no 1371 argument is given, returns the empty string, ``''``. 1372 1373 For more information on strings see :ref:`typesseq` which describes sequence 1374 functionality (strings are sequences), and also the string-specific methods 1375 described in the :ref:`string-methods` section. To output formatted strings 1376 use template strings or the ``%`` operator described in the 1377 :ref:`string-formatting` section. In addition see the :ref:`stringservices` 1378 section. See also :func:`unicode`. 1379 1380 1381 .. function:: sum(iterable[, start]) 1382 1383 Sums *start* and the items of an *iterable* from left to right and returns the 1384 total. *start* defaults to ``0``. The *iterable*'s items are normally numbers, 1385 and the start value is not allowed to be a string. 1386 1387 For some use cases, there are good alternatives to :func:`sum`. 1388 The preferred, fast way to concatenate a sequence of strings is by calling 1389 ``''.join(sequence)``. To add floating point values with extended precision, 1390 see :func:`math.fsum`\. To concatenate a series of iterables, consider using 1391 :func:`itertools.chain`. 1392 1393 .. versionadded:: 2.3 1394 1395 1396 .. function:: super(type[, object-or-type]) 1397 1398 Return a proxy object that delegates method calls to a parent or sibling 1399 class of *type*. This is useful for accessing inherited methods that have 1400 been overridden in a class. The search order is same as that used by 1401 :func:`getattr` except that the *type* itself is skipped. 1402 1403 The :attr:`~class.__mro__` attribute of the *type* lists the method 1404 resolution search order used by both :func:`getattr` and :func:`super`. The 1405 attribute is dynamic and can change whenever the inheritance hierarchy is 1406 updated. 1407 1408 If the second argument is omitted, the super object returned is unbound. If 1409 the second argument is an object, ``isinstance(obj, type)`` must be true. If 1410 the second argument is a type, ``issubclass(type2, type)`` must be true (this 1411 is useful for classmethods). 1412 1413 .. note:: 1414 :func:`super` only works for :term:`new-style class`\es. 1415 1416 There are two typical use cases for *super*. In a class hierarchy with 1417 single inheritance, *super* can be used to refer to parent classes without 1418 naming them explicitly, thus making the code more maintainable. This use 1419 closely parallels the use of *super* in other programming languages. 1420 1421 The second use case is to support cooperative multiple inheritance in a 1422 dynamic execution environment. This use case is unique to Python and is 1423 not found in statically compiled languages or languages that only support 1424 single inheritance. This makes it possible to implement "diamond diagrams" 1425 where multiple base classes implement the same method. Good design dictates 1426 that this method have the same calling signature in every case (because the 1427 order of calls is determined at runtime, because that order adapts 1428 to changes in the class hierarchy, and because that order can include 1429 sibling classes that are unknown prior to runtime). 1430 1431 For both use cases, a typical superclass call looks like this:: 1432 1433 class C(B): 1434 def method(self, arg): 1435 super(C, self).method(arg) 1436 1437 Note that :func:`super` is implemented as part of the binding process for 1438 explicit dotted attribute lookups such as ``super().__getitem__(name)``. 1439 It does so by implementing its own :meth:`__getattribute__` method for searching 1440 classes in a predictable order that supports cooperative multiple inheritance. 1441 Accordingly, :func:`super` is undefined for implicit lookups using statements or 1442 operators such as ``super()[name]``. 1443 1444 Also note that :func:`super` is not limited to use inside methods. The two 1445 argument form specifies the arguments exactly and makes the appropriate 1446 references. 1447 1448 For practical suggestions on how to design cooperative classes using 1449 :func:`super`, see `guide to using super() 1450 <https://rhettinger.wordpress.com/2011/05/26/super-considered-super/>`_. 1451 1452 .. versionadded:: 2.2 1453 1454 1455 .. function:: tuple([iterable]) 1456 1457 Return a tuple whose items are the same and in the same order as *iterable*'s 1458 items. *iterable* may be a sequence, a container that supports iteration, or an 1459 iterator object. If *iterable* is already a tuple, it is returned unchanged. 1460 For instance, ``tuple('abc')`` returns ``('a', 'b', 'c')`` and ``tuple([1, 2, 1461 3])`` returns ``(1, 2, 3)``. If no argument is given, returns a new empty 1462 tuple, ``()``. 1463 1464 :class:`tuple` is an immutable sequence type, as documented in 1465 :ref:`typesseq`. For other containers see the built in :class:`dict`, 1466 :class:`list`, and :class:`set` classes, and the :mod:`collections` module. 1467 1468 1469 .. class:: type(object) 1470 type(name, bases, dict) 1471 1472 .. index:: object: type 1473 1474 With one argument, return the type of an *object*. The return value is a 1475 type object. The :func:`isinstance` built-in function is recommended for 1476 testing the type of an object. 1477 1478 With three arguments, return a new type object. This is essentially a 1479 dynamic form of the :keyword:`class` statement. The *name* string is the 1480 class name and becomes the :attr:`~definition.__name__` attribute; the *bases* tuple 1481 itemizes the base classes and becomes the :attr:`~class.__bases__` attribute; 1482 and the *dict* dictionary is the namespace containing definitions for class 1483 body and becomes the :attr:`~object.__dict__` attribute. For example, the 1484 following two statements create identical :class:`type` objects: 1485 1486 >>> class X(object): 1487 ... a = 1 1488 ... 1489 >>> X = type('X', (object,), dict(a=1)) 1490 1491 .. versionadded:: 2.2 1492 1493 1494 .. function:: unichr(i) 1495 1496 Return the Unicode string of one character whose Unicode code is the integer 1497 *i*. For example, ``unichr(97)`` returns the string ``u'a'``. This is the 1498 inverse of :func:`ord` for Unicode strings. The valid range for the argument 1499 depends how Python was configured -- it may be either UCS2 [0..0xFFFF] or UCS4 1500 [0..0x10FFFF]. :exc:`ValueError` is raised otherwise. For ASCII and 8-bit 1501 strings see :func:`chr`. 1502 1503 .. versionadded:: 2.0 1504 1505 1506 .. function:: unicode(object='') 1507 unicode(object[, encoding [, errors]]) 1508 1509 Return the Unicode string version of *object* using one of the following modes: 1510 1511 If *encoding* and/or *errors* are given, ``unicode()`` will decode the object 1512 which can either be an 8-bit string or a character buffer using the codec for 1513 *encoding*. The *encoding* parameter is a string giving the name of an encoding; 1514 if the encoding is not known, :exc:`LookupError` is raised. Error handling is 1515 done according to *errors*; this specifies the treatment of characters which are 1516 invalid in the input encoding. If *errors* is ``'strict'`` (the default), a 1517 :exc:`ValueError` is raised on errors, while a value of ``'ignore'`` causes 1518 errors to be silently ignored, and a value of ``'replace'`` causes the official 1519 Unicode replacement character, ``U+FFFD``, to be used to replace input 1520 characters which cannot be decoded. See also the :mod:`codecs` module. 1521 1522 If no optional parameters are given, ``unicode()`` will mimic the behaviour of 1523 ``str()`` except that it returns Unicode strings instead of 8-bit strings. More 1524 precisely, if *object* is a Unicode string or subclass it will return that 1525 Unicode string without any additional decoding applied. 1526 1527 For objects which provide a :meth:`__unicode__` method, it will call this method 1528 without arguments to create a Unicode string. For all other objects, the 8-bit 1529 string version or representation is requested and then converted to a Unicode 1530 string using the codec for the default encoding in ``'strict'`` mode. 1531 1532 For more information on Unicode strings see :ref:`typesseq` which describes 1533 sequence functionality (Unicode strings are sequences), and also the 1534 string-specific methods described in the :ref:`string-methods` section. To 1535 output formatted strings use template strings or the ``%`` operator described 1536 in the :ref:`string-formatting` section. In addition see the 1537 :ref:`stringservices` section. See also :func:`str`. 1538 1539 .. versionadded:: 2.0 1540 1541 .. versionchanged:: 2.2 1542 Support for :meth:`__unicode__` added. 1543 1544 1545 .. function:: vars([object]) 1546 1547 Return the :attr:`~object.__dict__` attribute for a module, class, instance, 1548 or any other object with a :attr:`~object.__dict__` attribute. 1549 1550 Objects such as modules and instances have an updateable :attr:`~object.__dict__` 1551 attribute; however, other objects may have write restrictions on their 1552 :attr:`~object.__dict__` attributes (for example, new-style classes use a 1553 dictproxy to prevent direct dictionary updates). 1554 1555 Without an argument, :func:`vars` acts like :func:`locals`. Note, the 1556 locals dictionary is only useful for reads since updates to the locals 1557 dictionary are ignored. 1558 1559 1560 .. function:: xrange(stop) 1561 xrange(start, stop[, step]) 1562 1563 This function is very similar to :func:`range`, but returns an :ref:`xrange 1564 object <typesseq-xrange>` 1565 instead of a list. This is an opaque sequence type which yields the same values 1566 as the corresponding list, without actually storing them all simultaneously. 1567 The advantage of :func:`xrange` over :func:`range` is minimal (since 1568 :func:`xrange` still has to create the values when asked for them) except when a 1569 very large range is used on a memory-starved machine or when all of the range's 1570 elements are never used (such as when the loop is usually terminated with 1571 :keyword:`break`). For more information on xrange objects, see 1572 :ref:`typesseq-xrange` and :ref:`typesseq`. 1573 1574 .. impl-detail:: 1575 1576 :func:`xrange` is intended to be simple and fast. Implementations may 1577 impose restrictions to achieve this. The C implementation of Python 1578 restricts all arguments to native C longs ("short" Python integers), and 1579 also requires that the number of elements fit in a native C long. If a 1580 larger range is needed, an alternate version can be crafted using the 1581 :mod:`itertools` module: ``islice(count(start, step), 1582 (stop-start+step-1+2*(step<0))//step)``. 1583 1584 1585 .. function:: zip([iterable, ...]) 1586 1587 This function returns a list of tuples, where the *i*-th tuple contains the 1588 *i*-th element from each of the argument sequences or iterables. The returned 1589 list is truncated in length to the length of the shortest argument sequence. 1590 When there are multiple arguments which are all of the same length, :func:`zip` 1591 is similar to :func:`map` with an initial argument of ``None``. With a single 1592 sequence argument, it returns a list of 1-tuples. With no arguments, it returns 1593 an empty list. 1594 1595 The left-to-right evaluation order of the iterables is guaranteed. This 1596 makes possible an idiom for clustering a data series into n-length groups 1597 using ``zip(*[iter(s)]*n)``. 1598 1599 :func:`zip` in conjunction with the ``*`` operator can be used to unzip a 1600 list:: 1601 1602 >>> x = [1, 2, 3] 1603 >>> y = [4, 5, 6] 1604 >>> zipped = zip(x, y) 1605 >>> zipped 1606 [(1, 4), (2, 5), (3, 6)] 1607 >>> x2, y2 = zip(*zipped) 1608 >>> x == list(x2) and y == list(y2) 1609 True 1610 1611 .. versionadded:: 2.0 1612 1613 .. versionchanged:: 2.4 1614 Formerly, :func:`zip` required at least one argument and ``zip()`` raised a 1615 :exc:`TypeError` instead of returning an empty list. 1616 1617 1618 .. function:: __import__(name[, globals[, locals[, fromlist[, level]]]]) 1619 1620 .. index:: 1621 statement: import 1622 module: imp 1623 1624 .. note:: 1625 1626 This is an advanced function that is not needed in everyday Python 1627 programming, unlike :func:`importlib.import_module`. 1628 1629 This function is invoked by the :keyword:`import` statement. It can be 1630 replaced (by importing the :mod:`__builtin__` module and assigning to 1631 ``__builtin__.__import__``) in order to change semantics of the 1632 :keyword:`import` statement, but nowadays it is usually simpler to use import 1633 hooks (see :pep:`302`). Direct use of :func:`__import__` is rare, except in 1634 cases where you want to import a module whose name is only known at runtime. 1635 1636 The function imports the module *name*, potentially using the given *globals* 1637 and *locals* to determine how to interpret the name in a package context. 1638 The *fromlist* gives the names of objects or submodules that should be 1639 imported from the module given by *name*. The standard implementation does 1640 not use its *locals* argument at all, and uses its *globals* only to 1641 determine the package context of the :keyword:`import` statement. 1642 1643 *level* specifies whether to use absolute or relative imports. The default 1644 is ``-1`` which indicates both absolute and relative imports will be 1645 attempted. ``0`` means only perform absolute imports. Positive values for 1646 *level* indicate the number of parent directories to search relative to the 1647 directory of the module calling :func:`__import__`. 1648 1649 When the *name* variable is of the form ``package.module``, normally, the 1650 top-level package (the name up till the first dot) is returned, *not* the 1651 module named by *name*. However, when a non-empty *fromlist* argument is 1652 given, the module named by *name* is returned. 1653 1654 For example, the statement ``import spam`` results in bytecode resembling the 1655 following code:: 1656 1657 spam = __import__('spam', globals(), locals(), [], -1) 1658 1659 The statement ``import spam.ham`` results in this call:: 1660 1661 spam = __import__('spam.ham', globals(), locals(), [], -1) 1662 1663 Note how :func:`__import__` returns the toplevel module here because this is 1664 the object that is bound to a name by the :keyword:`import` statement. 1665 1666 On the other hand, the statement ``from spam.ham import eggs, sausage as 1667 saus`` results in :: 1668 1669 _temp = __import__('spam.ham', globals(), locals(), ['eggs', 'sausage'], -1) 1670 eggs = _temp.eggs 1671 saus = _temp.sausage 1672 1673 Here, the ``spam.ham`` module is returned from :func:`__import__`. From this 1674 object, the names to import are retrieved and assigned to their respective 1675 names. 1676 1677 If you simply want to import a module (potentially within a package) by name, 1678 use :func:`importlib.import_module`. 1679 1680 1681 .. versionchanged:: 2.5 1682 The level parameter was added. 1683 1684 .. versionchanged:: 2.5 1685 Keyword support for parameters was added. 1686 1687 .. --------------------------------------------------------------------------- 1688 1689 1690 .. _non-essential-built-in-funcs: 1691 1692 Non-essential Built-in Functions 1693 ================================ 1694 1695 There are several built-in functions that are no longer essential to learn, know 1696 or use in modern Python programming. They have been kept here to maintain 1697 backwards compatibility with programs written for older versions of Python. 1698 1699 Python programmers, trainers, students and book writers should feel free to 1700 bypass these functions without concerns about missing something important. 1701 1702 1703 .. function:: apply(function, args[, keywords]) 1704 1705 The *function* argument must be a callable object (a user-defined or built-in 1706 function or method, or a class object) and the *args* argument must be a 1707 sequence. The *function* is called with *args* as the argument list; the number 1708 of arguments is the length of the tuple. If the optional *keywords* argument is 1709 present, it must be a dictionary whose keys are strings. It specifies keyword 1710 arguments to be added to the end of the argument list. Calling :func:`apply` is 1711 different from just calling ``function(args)``, since in that case there is 1712 always exactly one argument. The use of :func:`apply` is equivalent to 1713 ``function(*args, **keywords)``. 1714 1715 .. deprecated:: 2.3 1716 Use ``function(*args, **keywords)`` instead of 1717 ``apply(function, args, keywords)`` (see :ref:`tut-unpacking-arguments`). 1718 1719 1720 .. function:: buffer(object[, offset[, size]]) 1721 1722 The *object* argument must be an object that supports the buffer call interface 1723 (such as strings, arrays, and buffers). A new buffer object will be created 1724 which references the *object* argument. The buffer object will be a slice from 1725 the beginning of *object* (or from the specified *offset*). The slice will 1726 extend to the end of *object* (or will have a length given by the *size* 1727 argument). 1728 1729 1730 .. function:: coerce(x, y) 1731 1732 Return a tuple consisting of the two numeric arguments converted to a common 1733 type, using the same rules as used by arithmetic operations. If coercion is not 1734 possible, raise :exc:`TypeError`. 1735 1736 1737 .. function:: intern(string) 1738 1739 Enter *string* in the table of "interned" strings and return the interned string 1740 -- which is *string* itself or a copy. Interning strings is useful to gain a 1741 little performance on dictionary lookup -- if the keys in a dictionary are 1742 interned, and the lookup key is interned, the key comparisons (after hashing) 1743 can be done by a pointer compare instead of a string compare. Normally, the 1744 names used in Python programs are automatically interned, and the dictionaries 1745 used to hold module, class or instance attributes have interned keys. 1746 1747 .. versionchanged:: 2.3 1748 Interned strings are not immortal (like they used to be in Python 2.2 and 1749 before); you must keep a reference to the return value of :func:`intern` around 1750 to benefit from it. 1751 1752 .. rubric:: Footnotes 1753 1754 .. [#] It is used relatively rarely so does not warrant being made into a statement. 1755 1756 .. [#] Specifying a buffer size currently has no effect on systems that don't have 1757 :c:func:`setvbuf`. The interface to specify the buffer size is not done using a 1758 method that calls :c:func:`setvbuf`, because that may dump core when called after 1759 any I/O has been performed, and there's no reliable way to determine whether 1760 this is the case. 1761 1762 .. [#] In the current implementation, local variable bindings cannot normally be 1763 affected this way, but variables retrieved from other scopes (such as modules) 1764 can be. This may change. 1765