blob: 95231363a5dc2e7a41730c46e771cd42867ea17a [file] [log] [blame]
Georg Brandl68ee3a52008-03-25 07:21:32 +00001.. XXX document all delegations to __special__ methods
Georg Brandl116aa622007-08-15 14:28:22 +00002.. _built-in-funcs:
3
4Built-in Functions
5==================
6
Georg Brandl42514812008-05-05 21:05:32 +00007The Python interpreter has a number of functions and types built into it that
8are always available. They are listed here in alphabetical order.
Georg Brandl116aa622007-08-15 14:28:22 +00009
Julien Palarda908bc42020-07-09 11:38:41 +020010+---------------------------------------------------------------------------------------------------+
11| Built-in Functions |
12+=========================+=======================+=======================+=========================+
13| | **A** | | **E** | | **L** | | **R** |
14| | :func:`abs` | | :func:`enumerate` | | :func:`len` | | |func-range|_ |
Joshua Bronsonf0a6fde2021-03-23 18:47:21 -040015| | :func:`aiter` | | :func:`eval` | | |func-list|_ | | :func:`repr` |
16| | :func:`all` | | :func:`exec` | | :func:`locals` | | :func:`reversed` |
17| | :func:`any` | | | | | | :func:`round` |
18| | :func:`anext` | | **F** | | **M** | | |
19| | :func:`ascii` | | :func:`filter` | | :func:`map` | | **S** |
20| | | | :func:`float` | | :func:`max` | | |func-set|_ |
21| | **B** | | :func:`format` | | |func-memoryview|_ | | :func:`setattr` |
22| | :func:`bin` | | |func-frozenset|_ | | :func:`min` | | :func:`slice` |
23| | :func:`bool` | | | | | | :func:`sorted` |
24| | :func:`breakpoint` | | **G** | | **N** | | :func:`staticmethod` |
25| | |func-bytearray|_ | | :func:`getattr` | | :func:`next` | | |func-str|_ |
26| | |func-bytes|_ | | :func:`globals` | | | | :func:`sum` |
27| | | | | | **O** | | :func:`super` |
28| | **C** | | **H** | | :func:`object` | | |
29| | :func:`callable` | | :func:`hasattr` | | :func:`oct` | | **T** |
30| | :func:`chr` | | :func:`hash` | | :func:`open` | | |func-tuple|_ |
31| | :func:`classmethod` | | :func:`help` | | :func:`ord` | | :func:`type` |
32| | :func:`compile` | | :func:`hex` | | | | |
33| | :func:`complex` | | | | **P** | | **V** |
34| | | | **I** | | :func:`pow` | | :func:`vars` |
35| | **D** | | :func:`id` | | :func:`print` | | |
36| | :func:`delattr` | | :func:`input` | | :func:`property` | | **Z** |
37| | |func-dict|_ | | :func:`int` | | | | :func:`zip` |
38| | :func:`dir` | | :func:`isinstance` | | | | |
39| | :func:`divmod` | | :func:`issubclass` | | | | **_** |
Julien Palarda908bc42020-07-09 11:38:41 +020040| | | | :func:`iter` | | | | :func:`__import__` |
41+-------------------------+-----------------------+-----------------------+-------------------------+
Georg Brandl116aa622007-08-15 14:28:22 +000042
Éric Araujo9edd9f02011-09-01 23:08:55 +020043.. using :func:`dict` would create a link to another page, so local targets are
44 used, with replacement texts to make the output in the table consistent
45
46.. |func-dict| replace:: ``dict()``
47.. |func-frozenset| replace:: ``frozenset()``
48.. |func-memoryview| replace:: ``memoryview()``
49.. |func-set| replace:: ``set()``
Nick Coghlan83c0ae52012-08-21 17:42:52 +100050.. |func-list| replace:: ``list()``
Chris Jerdonekbb4e9412012-11-28 01:38:40 -080051.. |func-str| replace:: ``str()``
Nick Coghlan83c0ae52012-08-21 17:42:52 +100052.. |func-tuple| replace:: ``tuple()``
53.. |func-range| replace:: ``range()``
csabellac6db4812017-04-26 01:47:01 -040054.. |func-bytearray| replace:: ``bytearray()``
55.. |func-bytes| replace:: ``bytes()``
Éric Araujo9edd9f02011-09-01 23:08:55 +020056
Georg Brandl116aa622007-08-15 14:28:22 +000057.. function:: abs(x)
58
Georg Brandlba956ae2007-11-29 17:24:34 +000059 Return the absolute value of a number. The argument may be an
Windson yang28316422020-05-29 19:35:34 +080060 integer, a floating point number, or an object implementing :meth:`__abs__`.
61 If the argument is a complex number, its magnitude is returned.
Georg Brandl116aa622007-08-15 14:28:22 +000062
63
Joshua Bronsonf0a6fde2021-03-23 18:47:21 -040064.. function:: aiter(async_iterable)
65
66 Return an :term:`asynchronous iterator` for an :term:`asynchronous iterable`.
67 Equivalent to calling ``x.__aiter__()``.
68
Joshua Bronsonf0a6fde2021-03-23 18:47:21 -040069 Note: Unlike :func:`iter`, :func:`aiter` has no 2-argument variant.
70
Pablo Galindod9692022021-03-23 23:57:03 +000071 .. versionadded:: 3.10
Joshua Bronsonf0a6fde2021-03-23 18:47:21 -040072
Georg Brandl116aa622007-08-15 14:28:22 +000073.. function:: all(iterable)
74
Serhiy Storchakafbc1c262013-11-29 12:17:13 +020075 Return ``True`` if all elements of the *iterable* are true (or if the iterable
Georg Brandl0192bff2009-04-27 16:49:41 +000076 is empty). Equivalent to::
Georg Brandl116aa622007-08-15 14:28:22 +000077
78 def all(iterable):
79 for element in iterable:
80 if not element:
81 return False
82 return True
83
Georg Brandl116aa622007-08-15 14:28:22 +000084
Joshua Bronsonf0a6fde2021-03-23 18:47:21 -040085.. awaitablefunction:: anext(async_iterator[, default])
86
87 When awaited, return the next item from the given :term:`asynchronous
88 iterator`, or *default* if given and the iterator is exhausted.
89
90 This is the async variant of the :func:`next` builtin, and behaves
91 similarly.
92
93 This calls the :meth:`~object.__anext__` method of *async_iterator*,
94 returning an :term:`awaitable`. Awaiting this returns the next value of the
95 iterator. If *default* is given, it is returned if the iterator is exhausted,
96 otherwise :exc:`StopAsyncIteration` is raised.
97
Pablo Galindod9692022021-03-23 23:57:03 +000098 .. versionadded:: 3.10
Joshua Bronsonf0a6fde2021-03-23 18:47:21 -040099
Georg Brandl116aa622007-08-15 14:28:22 +0000100.. function:: any(iterable)
101
Serhiy Storchakafbc1c262013-11-29 12:17:13 +0200102 Return ``True`` if any element of the *iterable* is true. If the iterable
103 is empty, return ``False``. Equivalent to::
Georg Brandl116aa622007-08-15 14:28:22 +0000104
105 def any(iterable):
106 for element in iterable:
107 if element:
108 return True
109 return False
110
Georg Brandl116aa622007-08-15 14:28:22 +0000111
Georg Brandl559e5d72008-06-11 18:37:52 +0000112.. function:: ascii(object)
113
114 As :func:`repr`, return a string containing a printable representation of an
115 object, but escape the non-ASCII characters in the string returned by
Miss Islington (bot)2d049202021-07-19 09:38:56 -0700116 :func:`repr` using ``\x``, ``\u``, or ``\U`` escapes. This generates a string
Georg Brandl559e5d72008-06-11 18:37:52 +0000117 similar to that returned by :func:`repr` in Python 2.
118
119
Georg Brandl116aa622007-08-15 14:28:22 +0000120.. function:: bin(x)
121
Manvisha Kodali67ba4fa2017-07-06 22:30:58 +0300122 Convert an integer number to a binary string prefixed with "0b". The result
123 is a valid Python expression. If *x* is not a Python :class:`int` object, it
124 has to define an :meth:`__index__` method that returns an integer. Some
125 examples:
126
127 >>> bin(3)
128 '0b11'
129 >>> bin(-10)
130 '-0b1010'
131
Miss Islington (bot)2d049202021-07-19 09:38:56 -0700132 If the prefix "0b" is desired or not, you can use either of the following ways.
Manvisha Kodali67ba4fa2017-07-06 22:30:58 +0300133
134 >>> format(14, '#b'), format(14, 'b')
135 ('0b1110', '1110')
136 >>> f'{14:#b}', f'{14:b}'
137 ('0b1110', '1110')
138
Andrés Delfinobda9c3e2018-06-29 06:57:10 -0300139 See also :func:`format` for more information.
Georg Brandl116aa622007-08-15 14:28:22 +0000140
Georg Brandl116aa622007-08-15 14:28:22 +0000141
Georg Brandleb7e8f62014-10-06 13:54:36 +0200142.. class:: bool([x])
Georg Brandl116aa622007-08-15 14:28:22 +0000143
Georg Brandleb7e8f62014-10-06 13:54:36 +0200144 Return a Boolean value, i.e. one of ``True`` or ``False``. *x* is converted
145 using the standard :ref:`truth testing procedure <truth>`. If *x* is false
Miss Islington (bot)2d049202021-07-19 09:38:56 -0700146 or omitted, this returns ``False``; otherwise, it returns ``True``. The
Georg Brandleb7e8f62014-10-06 13:54:36 +0200147 :class:`bool` class is a subclass of :class:`int` (see :ref:`typesnumeric`).
148 It cannot be subclassed further. Its only instances are ``False`` and
Éric Araujo18ddf822011-09-01 23:10:36 +0200149 ``True`` (see :ref:`bltin-boolean-values`).
Georg Brandl116aa622007-08-15 14:28:22 +0000150
151 .. index:: pair: Boolean; type
152
Louis Sautier3fe89da2018-08-27 12:45:26 +0200153 .. versionchanged:: 3.7
154 *x* is now a positional-only parameter.
Georg Brandl116aa622007-08-15 14:28:22 +0000155
Barry Warsaw36c1d1f2017-10-05 12:11:18 -0400156.. function:: breakpoint(*args, **kws)
157
158 This function drops you into the debugger at the call site. Specifically,
159 it calls :func:`sys.breakpointhook`, passing ``args`` and ``kws`` straight
160 through. By default, ``sys.breakpointhook()`` calls
161 :func:`pdb.set_trace()` expecting no arguments. In this case, it is
162 purely a convenience function so you don't have to explicitly import
163 :mod:`pdb` or type as much code to enter the debugger. However,
164 :func:`sys.breakpointhook` can be set to some other function and
165 :func:`breakpoint` will automatically call that, allowing you to drop into
166 the debugger of choice.
167
Steve Dower44f91c32019-06-27 10:47:59 -0700168 .. audit-event:: builtins.breakpoint breakpointhook breakpoint
Steve Dower60419a72019-06-24 08:42:54 -0700169
Barry Warsaw36c1d1f2017-10-05 12:11:18 -0400170 .. versionadded:: 3.7
171
Nick Coghlan83c0ae52012-08-21 17:42:52 +1000172.. _func-bytearray:
Georg Brandleb7e8f62014-10-06 13:54:36 +0200173.. class:: bytearray([source[, encoding[, errors]]])
csabellac6db4812017-04-26 01:47:01 -0400174 :noindex:
Georg Brandl85eb8c12007-08-31 16:33:38 +0000175
Georg Brandleb7e8f62014-10-06 13:54:36 +0200176 Return a new array of bytes. The :class:`bytearray` class is a mutable
Georg Brandl95414632007-11-22 11:00:28 +0000177 sequence of integers in the range 0 <= x < 256. It has most of the usual
178 methods of mutable sequences, described in :ref:`typesseq-mutable`, as well
Antoine Pitroub85b3af2010-11-20 19:36:05 +0000179 as most methods that the :class:`bytes` type has, see :ref:`bytes-methods`.
Georg Brandl85eb8c12007-08-31 16:33:38 +0000180
Georg Brandl036490d2009-05-17 13:00:36 +0000181 The optional *source* parameter can be used to initialize the array in a few
Georg Brandl85eb8c12007-08-31 16:33:38 +0000182 different ways:
183
184 * If it is a *string*, you must also give the *encoding* (and optionally,
Georg Brandlf6945182008-02-01 11:56:49 +0000185 *errors*) parameters; :func:`bytearray` then converts the string to
Guido van Rossum98297ee2007-11-06 21:34:58 +0000186 bytes using :meth:`str.encode`.
Georg Brandl85eb8c12007-08-31 16:33:38 +0000187
188 * If it is an *integer*, the array will have that size and will be
189 initialized with null bytes.
190
Antoine0f25c232020-10-26 06:26:34 +0100191 * If it is an object conforming to the :ref:`buffer interface <bufferobjects>`,
192 a read-only buffer of the object will be used to initialize the bytes array.
Georg Brandl85eb8c12007-08-31 16:33:38 +0000193
Guido van Rossum98297ee2007-11-06 21:34:58 +0000194 * If it is an *iterable*, it must be an iterable of integers in the range
195 ``0 <= x < 256``, which are used as the initial contents of the array.
Georg Brandl85eb8c12007-08-31 16:33:38 +0000196
197 Without an argument, an array of size 0 is created.
198
Chris Jerdonek006d9072012-10-12 20:28:26 -0700199 See also :ref:`binaryseq` and :ref:`typebytearray`.
200
Georg Brandl85eb8c12007-08-31 16:33:38 +0000201
Nick Coghlan83c0ae52012-08-21 17:42:52 +1000202.. _func-bytes:
Georg Brandleb7e8f62014-10-06 13:54:36 +0200203.. class:: bytes([source[, encoding[, errors]]])
csabellac6db4812017-04-26 01:47:01 -0400204 :noindex:
Guido van Rossum98297ee2007-11-06 21:34:58 +0000205
Miss Islington (bot)2d049202021-07-19 09:38:56 -0700206 Return a new "bytes" object which is an immutable sequence of integers in
Guido van Rossum98297ee2007-11-06 21:34:58 +0000207 the range ``0 <= x < 256``. :class:`bytes` is an immutable version of
Georg Brandl95414632007-11-22 11:00:28 +0000208 :class:`bytearray` -- it has the same non-mutating methods and the same
209 indexing and slicing behavior.
Georg Brandl48310cd2009-01-03 21:18:54 +0000210
Georg Brandl476b3552009-04-29 06:37:12 +0000211 Accordingly, constructor arguments are interpreted as for :func:`bytearray`.
Guido van Rossum98297ee2007-11-06 21:34:58 +0000212
213 Bytes objects can also be created with literals, see :ref:`strings`.
214
Chris Jerdonek006d9072012-10-12 20:28:26 -0700215 See also :ref:`binaryseq`, :ref:`typebytes`, and :ref:`bytes-methods`.
216
Guido van Rossum98297ee2007-11-06 21:34:58 +0000217
Antoine Pitroue71362d2010-11-27 22:00:11 +0000218.. function:: callable(object)
219
220 Return :const:`True` if the *object* argument appears callable,
Serhiy Storchaka138ccbb2019-11-12 16:57:03 +0200221 :const:`False` if not. If this returns ``True``, it is still possible that a
222 call fails, but if it is ``False``, calling *object* will never succeed.
Antoine Pitroue71362d2010-11-27 22:00:11 +0000223 Note that classes are callable (calling a class returns a new instance);
224 instances are callable if their class has a :meth:`__call__` method.
225
226 .. versionadded:: 3.2
227 This function was first removed in Python 3.0 and then brought back
228 in Python 3.2.
229
230
Georg Brandl116aa622007-08-15 14:28:22 +0000231.. function:: chr(i)
232
Georg Brandl3be472b2015-01-14 08:26:30 +0100233 Return the string representing a character whose Unicode code point is the
Nick Coghlaneed67192014-08-17 14:07:53 +1000234 integer *i*. For example, ``chr(97)`` returns the string ``'a'``, while
Terry Jan Reedy01a9a952016-03-23 13:36:52 -0400235 ``chr(8364)`` returns the string ``'€'``. This is the inverse of :func:`ord`.
Nick Coghlaneed67192014-08-17 14:07:53 +1000236
237 The valid range for the argument is from 0 through 1,114,111 (0x10FFFF in
238 base 16). :exc:`ValueError` will be raised if *i* is outside that range.
Alexander Belopolsky5d4dd3e2010-11-18 18:50:13 +0000239
Georg Brandl116aa622007-08-15 14:28:22 +0000240
Daisuke Miyakawa0e61e672017-10-12 23:39:43 +0900241.. decorator:: classmethod
Georg Brandl116aa622007-08-15 14:28:22 +0000242
Daisuke Miyakawa0e61e672017-10-12 23:39:43 +0900243 Transform a method into a class method.
Georg Brandl116aa622007-08-15 14:28:22 +0000244
Miss Islington (bot)2d049202021-07-19 09:38:56 -0700245 A class method receives the class as an implicit first argument, just like an
Georg Brandl116aa622007-08-15 14:28:22 +0000246 instance method receives the instance. To declare a class method, use this
247 idiom::
248
249 class C:
250 @classmethod
Miss Islington (bot)a57ec7a2022-01-26 04:42:26 -0800251 def f(cls, arg1, arg2): ...
Georg Brandl116aa622007-08-15 14:28:22 +0000252
Andre Delfino548cb602019-03-25 19:53:43 -0300253 The ``@classmethod`` form is a function :term:`decorator` -- see
254 :ref:`function` for details.
Georg Brandl116aa622007-08-15 14:28:22 +0000255
Andre Delfino548cb602019-03-25 19:53:43 -0300256 A class method can be called either on the class (such as ``C.f()``) or on an instance (such
Georg Brandl116aa622007-08-15 14:28:22 +0000257 as ``C().f()``). The instance is ignored except for its class. If a class
258 method is called for a derived class, the derived class object is passed as the
259 implied first argument.
260
261 Class methods are different than C++ or Java static methods. If you want those,
Berker Peksag805f8f92019-08-25 01:37:25 +0300262 see :func:`staticmethod` in this section.
Andre Delfino548cb602019-03-25 19:53:43 -0300263 For more information on class methods, see :ref:`types`.
Georg Brandl116aa622007-08-15 14:28:22 +0000264
Berker Peksag805f8f92019-08-25 01:37:25 +0300265 .. versionchanged:: 3.9
266 Class methods can now wrap other :term:`descriptors <descriptor>` such as
267 :func:`property`.
Georg Brandl116aa622007-08-15 14:28:22 +0000268
Victor Stinner507a5742021-04-09 17:51:22 +0200269 .. versionchanged:: 3.10
270 Class methods now inherit the method attributes (``__module__``,
271 ``__name__``, ``__qualname__``, ``__doc__`` and ``__annotations__``) and
272 have a new ``__wrapped__`` attribute.
273
Georg Brandl8334fd92010-12-04 10:26:46 +0000274.. function:: compile(source, filename, mode, flags=0, dont_inherit=False, optimize=-1)
Georg Brandl116aa622007-08-15 14:28:22 +0000275
Benjamin Petersonec9199b2008-11-08 17:05:00 +0000276 Compile the *source* into a code or AST object. Code objects can be executed
Benjamin Peterson933142a2013-12-06 20:12:39 -0500277 by :func:`exec` or :func:`eval`. *source* can either be a normal string, a
278 byte string, or an AST object. Refer to the :mod:`ast` module documentation
279 for information on how to work with AST objects.
Georg Brandl116aa622007-08-15 14:28:22 +0000280
Benjamin Petersonec9199b2008-11-08 17:05:00 +0000281 The *filename* argument should give the file from which the code was read;
282 pass some recognizable value if it wasn't read from a file (``'<string>'`` is
283 commonly used).
284
285 The *mode* argument specifies what kind of code must be compiled; it can be
286 ``'exec'`` if *source* consists of a sequence of statements, ``'eval'`` if it
287 consists of a single expression, or ``'single'`` if it consists of a single
288 interactive statement (in the latter case, expression statements that
R. David Murray66011262009-06-25 17:37:57 +0000289 evaluate to something other than ``None`` will be printed).
Georg Brandl116aa622007-08-15 14:28:22 +0000290
Rafael Fontenelleb76a8402020-10-29 17:48:21 -0300291 The optional arguments *flags* and *dont_inherit* control which
Batuhan Taskaya15593892020-10-19 04:14:11 +0300292 :ref:`compiler options <ast-compiler-flags>` should be activated
293 and which :ref:`future features <future>` should be allowed. If neither
294 is present (or both are zero) the code is compiled with the same flags that
295 affect the code that is calling :func:`compile`. If the *flags*
296 argument is given and *dont_inherit* is not (or is zero) then the compiler
297 options and the future statements specified by the *flags* argument are used
298 in addition to those that would be used anyway. If *dont_inherit* is a
299 non-zero integer then the *flags* argument is it -- the flags (future
300 features and compiler options) in the surrounding code are ignored.
Georg Brandl116aa622007-08-15 14:28:22 +0000301
Batuhan Taskaya15593892020-10-19 04:14:11 +0300302 Compiler options and future statements are specified by bits which can be
303 bitwise ORed together to specify multiple options. The bitfield required to
304 specify a given future feature can be found as the
305 :attr:`~__future__._Feature.compiler_flag` attribute on the
306 :class:`~__future__._Feature` instance in the :mod:`__future__` module.
307 :ref:`Compiler flags <ast-compiler-flags>` can be found in :mod:`ast`
308 module, with ``PyCF_`` prefix.
Matthias Bussonnier565b4f12019-05-21 13:12:03 -0700309
Georg Brandl8334fd92010-12-04 10:26:46 +0000310 The argument *optimize* specifies the optimization level of the compiler; the
311 default value of ``-1`` selects the optimization level of the interpreter as
312 given by :option:`-O` options. Explicit levels are ``0`` (no optimization;
313 ``__debug__`` is true), ``1`` (asserts are removed, ``__debug__`` is false)
314 or ``2`` (docstrings are removed too).
315
Christian Heimes7f044312008-01-06 17:05:40 +0000316 This function raises :exc:`SyntaxError` if the compiled source is invalid,
Berker Peksag0334c3c2016-02-21 22:00:12 +0200317 and :exc:`ValueError` if the source contains null bytes.
Christian Heimes7f044312008-01-06 17:05:40 +0000318
Georg Brandle4196d32014-10-31 09:41:46 +0100319 If you want to parse Python code into its AST representation, see
320 :func:`ast.parse`.
321
Steve Dower44f91c32019-06-27 10:47:59 -0700322 .. audit-event:: compile source,filename compile
Steve Dowerb82e17e2019-05-23 08:45:22 -0700323
Steve Dower60419a72019-06-24 08:42:54 -0700324 Raises an :ref:`auditing event <auditing>` ``compile`` with arguments
Steve Dowerb82e17e2019-05-23 08:45:22 -0700325 ``source`` and ``filename``. This event may also be raised by implicit
326 compilation.
327
Benjamin Petersonec9199b2008-11-08 17:05:00 +0000328 .. note::
329
Benjamin Peterson20211002009-11-25 18:34:42 +0000330 When compiling a string with multi-line code in ``'single'`` or
Benjamin Petersonaeaa5922009-11-13 00:17:59 +0000331 ``'eval'`` mode, input must be terminated by at least one newline
332 character. This is to facilitate detection of incomplete and complete
333 statements in the :mod:`code` module.
334
Brett Cannonf7a6ff62018-03-09 13:13:32 -0800335 .. warning::
336
337 It is possible to crash the Python interpreter with a
338 sufficiently large/complex string when compiling to an AST
339 object due to stack depth limitations in Python's AST compiler.
340
Benjamin Petersonaeaa5922009-11-13 00:17:59 +0000341 .. versionchanged:: 3.2
Miss Islington (bot)2d049202021-07-19 09:38:56 -0700342 Allowed use of Windows and Mac newlines. Also, input in ``'exec'`` mode
Georg Brandl8334fd92010-12-04 10:26:46 +0000343 does not have to end in a newline anymore. Added the *optimize* parameter.
Benjamin Petersonec9199b2008-11-08 17:05:00 +0000344
Berker Peksag0334c3c2016-02-21 22:00:12 +0200345 .. versionchanged:: 3.5
346 Previously, :exc:`TypeError` was raised when null bytes were encountered
347 in *source*.
348
Matthias Bussonnier565b4f12019-05-21 13:12:03 -0700349 .. versionadded:: 3.8
350 ``ast.PyCF_ALLOW_TOP_LEVEL_AWAIT`` can now be passed in flags to enable
351 support for top-level ``await``, ``async for``, and ``async with``.
352
Georg Brandl116aa622007-08-15 14:28:22 +0000353
Georg Brandleb7e8f62014-10-06 13:54:36 +0200354.. class:: complex([real[, imag]])
Georg Brandl116aa622007-08-15 14:28:22 +0000355
Terry Jan Reedy43cba212015-05-23 16:16:28 -0400356 Return a complex number with the value *real* + *imag*\*1j or convert a string
Georg Brandleb7e8f62014-10-06 13:54:36 +0200357 or number to a complex number. If the first parameter is a string, it will
358 be interpreted as a complex number and the function must be called without a
359 second parameter. The second parameter can never be a string. Each argument
360 may be any numeric type (including complex). If *imag* is omitted, it
361 defaults to zero and the constructor serves as a numeric conversion like
362 :class:`int` and :class:`float`. If both arguments are omitted, returns
363 ``0j``.
Georg Brandl116aa622007-08-15 14:28:22 +0000364
Serhiy Storchakabdbad712019-06-02 00:05:48 +0300365 For a general Python object ``x``, ``complex(x)`` delegates to
366 ``x.__complex__()``. If ``__complex__()`` is not defined then it falls back
367 to :meth:`__float__`. If ``__float__()`` is not defined then it falls back
368 to :meth:`__index__`.
369
Mark Dickinson328dd0d2012-03-10 16:09:35 +0000370 .. note::
371
372 When converting from a string, the string must not contain whitespace
373 around the central ``+`` or ``-`` operator. For example,
374 ``complex('1+2j')`` is fine, but ``complex('1 + 2j')`` raises
375 :exc:`ValueError`.
376
Georg Brandl116aa622007-08-15 14:28:22 +0000377 The complex type is described in :ref:`typesnumeric`.
378
Brett Cannona721aba2016-09-09 14:57:09 -0700379 .. versionchanged:: 3.6
380 Grouping digits with underscores as in code literals is allowed.
381
Serhiy Storchakabdbad712019-06-02 00:05:48 +0300382 .. versionchanged:: 3.8
383 Falls back to :meth:`__index__` if :meth:`__complex__` and
384 :meth:`__float__` are not defined.
385
Georg Brandl116aa622007-08-15 14:28:22 +0000386
387.. function:: delattr(object, name)
388
389 This is a relative of :func:`setattr`. The arguments are an object and a
390 string. The string must be the name of one of the object's attributes. The
391 function deletes the named attribute, provided the object allows it. For
392 example, ``delattr(x, 'foobar')`` is equivalent to ``del x.foobar``.
393
394
Éric Araujo9edd9f02011-09-01 23:08:55 +0200395.. _func-dict:
Georg Brandleb7e8f62014-10-06 13:54:36 +0200396.. class:: dict(**kwarg)
397 dict(mapping, **kwarg)
398 dict(iterable, **kwarg)
Georg Brandl116aa622007-08-15 14:28:22 +0000399 :noindex:
400
Chris Jerdonekf3413172012-10-13 03:22:33 -0700401 Create a new dictionary. The :class:`dict` object is the dictionary class.
Georg Brandleb7e8f62014-10-06 13:54:36 +0200402 See :class:`dict` and :ref:`typesmapping` for documentation about this class.
Georg Brandl116aa622007-08-15 14:28:22 +0000403
Chris Jerdonekf3413172012-10-13 03:22:33 -0700404 For other containers see the built-in :class:`list`, :class:`set`, and
405 :class:`tuple` classes, as well as the :mod:`collections` module.
Georg Brandl116aa622007-08-15 14:28:22 +0000406
407
408.. function:: dir([object])
409
410 Without arguments, return the list of names in the current local scope. With an
411 argument, attempt to return a list of valid attributes for that object.
412
413 If the object has a method named :meth:`__dir__`, this method will be called and
414 must return the list of attributes. This allows objects that implement a custom
415 :func:`__getattr__` or :func:`__getattribute__` function to customize the way
416 :func:`dir` reports their attributes.
417
418 If the object does not provide :meth:`__dir__`, the function tries its best to
Martin Panterbae5d812016-06-18 03:57:31 +0000419 gather information from the object's :attr:`~object.__dict__` attribute, if defined, and
Miss Islington (bot)2d049202021-07-19 09:38:56 -0700420 from its type object. The resulting list is not necessarily complete and may
Georg Brandl116aa622007-08-15 14:28:22 +0000421 be inaccurate when the object has a custom :func:`__getattr__`.
422
423 The default :func:`dir` mechanism behaves differently with different types of
424 objects, as it attempts to produce the most relevant, rather than complete,
425 information:
426
427 * If the object is a module object, the list contains the names of the module's
428 attributes.
429
430 * If the object is a type or class object, the list contains the names of its
431 attributes, and recursively of the attributes of its bases.
432
433 * Otherwise, the list contains the object's attributes' names, the names of its
434 class's attributes, and recursively of the attributes of its class's base
435 classes.
436
Christian Heimesfe337bf2008-03-23 21:54:12 +0000437 The resulting list is sorted alphabetically. For example:
438
439 >>> import struct
Marco Buttue65fcde2017-04-27 14:23:34 +0200440 >>> dir() # show the names in the module namespace # doctest: +SKIP
Andrew Svetlov439e17f2012-08-12 15:16:42 +0300441 ['__builtins__', '__name__', 'struct']
442 >>> dir(struct) # show the names in the struct module # doctest: +SKIP
443 ['Struct', '__all__', '__builtins__', '__cached__', '__doc__', '__file__',
444 '__initializing__', '__loader__', '__name__', '__package__',
445 '_clearcache', 'calcsize', 'error', 'pack', 'pack_into',
Christian Heimesfe337bf2008-03-23 21:54:12 +0000446 'unpack', 'unpack_from']
Ezio Melottiaf8838f2013-03-11 09:30:21 +0200447 >>> class Shape:
Andrew Svetlov439e17f2012-08-12 15:16:42 +0300448 ... def __dir__(self):
449 ... return ['area', 'perimeter', 'location']
Raymond Hettinger90289282011-06-01 16:17:23 -0700450 >>> s = Shape()
451 >>> dir(s)
Andrew Svetlov439e17f2012-08-12 15:16:42 +0300452 ['area', 'location', 'perimeter']
Georg Brandl116aa622007-08-15 14:28:22 +0000453
454 .. note::
455
456 Because :func:`dir` is supplied primarily as a convenience for use at an
Georg Brandl036490d2009-05-17 13:00:36 +0000457 interactive prompt, it tries to supply an interesting set of names more
458 than it tries to supply a rigorously or consistently defined set of names,
459 and its detailed behavior may change across releases. For example,
460 metaclass attributes are not in the result list when the argument is a
461 class.
Georg Brandl116aa622007-08-15 14:28:22 +0000462
463
464.. function:: divmod(a, b)
465
Miss Islington (bot)2d049202021-07-19 09:38:56 -0700466 Take two (non-complex) numbers as arguments and return a pair of numbers
Georg Brandl036490d2009-05-17 13:00:36 +0000467 consisting of their quotient and remainder when using integer division. With
468 mixed operand types, the rules for binary arithmetic operators apply. For
469 integers, the result is the same as ``(a // b, a % b)``. For floating point
470 numbers the result is ``(q, a % b)``, where *q* is usually ``math.floor(a /
471 b)`` but may be 1 less than that. In any case ``q * b + a % b`` is very
472 close to *a*, if ``a % b`` is non-zero it has the same sign as *b*, and ``0
473 <= abs(a % b) < abs(b)``.
Georg Brandl116aa622007-08-15 14:28:22 +0000474
Georg Brandl116aa622007-08-15 14:28:22 +0000475
Georg Brandl036490d2009-05-17 13:00:36 +0000476.. function:: enumerate(iterable, start=0)
Georg Brandl116aa622007-08-15 14:28:22 +0000477
Georg Brandld11ae5d2008-05-16 13:27:32 +0000478 Return an enumerate object. *iterable* must be a sequence, an
Ezio Melotti7fa82222012-10-12 13:42:08 +0300479 :term:`iterator`, or some other object which supports iteration.
480 The :meth:`~iterator.__next__` method of the iterator returned by
481 :func:`enumerate` returns a tuple containing a count (from *start* which
482 defaults to 0) and the values obtained from iterating over *iterable*.
Georg Brandl116aa622007-08-15 14:28:22 +0000483
Raymond Hettinger9d3df6d2011-06-25 15:00:14 +0200484 >>> seasons = ['Spring', 'Summer', 'Fall', 'Winter']
485 >>> list(enumerate(seasons))
486 [(0, 'Spring'), (1, 'Summer'), (2, 'Fall'), (3, 'Winter')]
487 >>> list(enumerate(seasons, start=1))
488 [(1, 'Spring'), (2, 'Summer'), (3, 'Fall'), (4, 'Winter')]
Raymond Hettinger90289282011-06-01 16:17:23 -0700489
490 Equivalent to::
491
492 def enumerate(sequence, start=0):
493 n = start
494 for elem in sequence:
495 yield n, elem
496 n += 1
Georg Brandl116aa622007-08-15 14:28:22 +0000497
Georg Brandl116aa622007-08-15 14:28:22 +0000498
smokephil7a0023e2019-09-11 12:30:04 +0200499.. function:: eval(expression[, globals[, locals]])
Georg Brandl116aa622007-08-15 14:28:22 +0000500
501 The arguments are a string and optional globals and locals. If provided,
502 *globals* must be a dictionary. If provided, *locals* can be any mapping
503 object.
504
Georg Brandl116aa622007-08-15 14:28:22 +0000505 The *expression* argument is parsed and evaluated as a Python expression
506 (technically speaking, a condition list) using the *globals* and *locals*
Georg Brandl9afde1c2007-11-01 20:32:30 +0000507 dictionaries as global and local namespace. If the *globals* dictionary is
Berker Peksag225b0552018-08-19 13:25:33 +0300508 present and does not contain a value for the key ``__builtins__``, a
509 reference to the dictionary of the built-in module :mod:`builtins` is
Antoinefc3dca32020-12-16 16:45:19 +0100510 inserted under that key before *expression* is parsed. That way you can
511 control what builtins are available to the executed code by inserting your
512 own ``__builtins__`` dictionary into *globals* before passing it to
513 :func:`eval`. If the *locals* dictionary is omitted it defaults to the
514 *globals* dictionary. If both dictionaries are omitted, the expression is
515 executed with the *globals* and *locals* in the environment where
516 :func:`eval` is called. Note, *eval()* does not have access to the
517 :term:`nested scopes <nested scope>` (non-locals) in the enclosing
518 environment.
Raymond Hettinger610a4822019-08-06 17:56:22 -0700519
520 The return value is the result of
Christian Heimesfe337bf2008-03-23 21:54:12 +0000521 the evaluated expression. Syntax errors are reported as exceptions. Example:
Georg Brandl116aa622007-08-15 14:28:22 +0000522
523 >>> x = 1
Georg Brandl6911e3c2007-09-04 07:15:32 +0000524 >>> eval('x+1')
Georg Brandl116aa622007-08-15 14:28:22 +0000525 2
526
Benjamin Peterson3e4f0552008-09-02 00:31:15 +0000527 This function can also be used to execute arbitrary code objects (such as
Miss Islington (bot)2d049202021-07-19 09:38:56 -0700528 those created by :func:`compile`). In this case, pass a code object instead
Benjamin Peterson3e4f0552008-09-02 00:31:15 +0000529 of a string. If the code object has been compiled with ``'exec'`` as the
Georg Brandl1f70cdf2010-03-21 09:04:24 +0000530 *mode* argument, :func:`eval`\'s return value will be ``None``.
Georg Brandl116aa622007-08-15 14:28:22 +0000531
532 Hints: dynamic execution of statements is supported by the :func:`exec`
533 function. The :func:`globals` and :func:`locals` functions
Miss Islington (bot)2d049202021-07-19 09:38:56 -0700534 return the current global and local dictionary, respectively, which may be
Georg Brandl116aa622007-08-15 14:28:22 +0000535 useful to pass around for use by :func:`eval` or :func:`exec`.
536
Batuhan Taskayae799aa82020-10-04 03:46:44 +0300537 If the given source is a string, then leading and trailing spaces and tabs
538 are stripped.
539
Georg Brandl05bfcc52010-07-11 09:42:10 +0000540 See :func:`ast.literal_eval` for a function that can safely evaluate strings
541 with expressions containing only literals.
542
Steve Dower44f91c32019-06-27 10:47:59 -0700543 .. audit-event:: exec code_object eval
Steve Dowerb82e17e2019-05-23 08:45:22 -0700544
Steve Dower60419a72019-06-24 08:42:54 -0700545 Raises an :ref:`auditing event <auditing>` ``exec`` with the code object
546 as the argument. Code compilation events may also be raised.
Steve Dowerb82e17e2019-05-23 08:45:22 -0700547
Berker Peksag3410af42014-07-04 15:06:45 +0300548.. index:: builtin: exec
Georg Brandl116aa622007-08-15 14:28:22 +0000549
550.. function:: exec(object[, globals[, locals]])
551
Benjamin Petersond3013ff2008-11-11 21:43:42 +0000552 This function supports dynamic execution of Python code. *object* must be
553 either a string or a code object. If it is a string, the string is parsed as
554 a suite of Python statements which is then executed (unless a syntax error
Georg Brandl47f27a32009-03-31 16:57:13 +0000555 occurs). [#]_ If it is a code object, it is simply executed. In all cases,
556 the code that's executed is expected to be valid as file input (see the
Miss Islington (bot)8af30902021-11-02 14:54:53 -0700557 section :ref:`file-input` in the Reference Manual). Be aware that the
Terry Jan Reedy0ec57e22021-02-07 00:28:50 -0500558 :keyword:`nonlocal`, :keyword:`yield`, and :keyword:`return`
559 statements may not be used outside of
Georg Brandl47f27a32009-03-31 16:57:13 +0000560 function definitions even within the context of code passed to the
561 :func:`exec` function. The return value is ``None``.
Georg Brandl116aa622007-08-15 14:28:22 +0000562
563 In all cases, if the optional parts are omitted, the code is executed in the
Anthony Shaw059b9ea2019-06-02 01:51:58 +1000564 current scope. If only *globals* is provided, it must be a dictionary
565 (and not a subclass of dictionary), which
Georg Brandl116aa622007-08-15 14:28:22 +0000566 will be used for both the global and the local variables. If *globals* and
567 *locals* are given, they are used for the global and local variables,
Terry Jan Reedy83efd6c2012-07-08 17:36:14 -0400568 respectively. If provided, *locals* can be any mapping object. Remember
Miss Islington (bot)2d049202021-07-19 09:38:56 -0700569 that at the module level, globals and locals are the same dictionary. If exec
Terry Jan Reedy83efd6c2012-07-08 17:36:14 -0400570 gets two separate objects as *globals* and *locals*, the code will be
571 executed as if it were embedded in a class definition.
Georg Brandl116aa622007-08-15 14:28:22 +0000572
573 If the *globals* dictionary does not contain a value for the key
574 ``__builtins__``, a reference to the dictionary of the built-in module
Georg Brandl1a3284e2007-12-02 09:40:06 +0000575 :mod:`builtins` is inserted under that key. That way you can control what
Georg Brandl116aa622007-08-15 14:28:22 +0000576 builtins are available to the executed code by inserting your own
577 ``__builtins__`` dictionary into *globals* before passing it to :func:`exec`.
578
Steve Dower44f91c32019-06-27 10:47:59 -0700579 .. audit-event:: exec code_object exec
Steve Dowerb82e17e2019-05-23 08:45:22 -0700580
Steve Dower60419a72019-06-24 08:42:54 -0700581 Raises an :ref:`auditing event <auditing>` ``exec`` with the code object
582 as the argument. Code compilation events may also be raised.
Steve Dowerb82e17e2019-05-23 08:45:22 -0700583
Georg Brandl116aa622007-08-15 14:28:22 +0000584 .. note::
585
586 The built-in functions :func:`globals` and :func:`locals` return the current
587 global and local dictionary, respectively, which may be useful to pass around
588 for use as the second and third argument to :func:`exec`.
589
Georg Brandle720c0a2009-04-27 16:20:50 +0000590 .. note::
Georg Brandl116aa622007-08-15 14:28:22 +0000591
592 The default *locals* act as described for function :func:`locals` below:
Georg Brandlf6945182008-02-01 11:56:49 +0000593 modifications to the default *locals* dictionary should not be attempted.
594 Pass an explicit *locals* dictionary if you need to see effects of the
595 code on *locals* after function :func:`exec` returns.
Georg Brandl116aa622007-08-15 14:28:22 +0000596
597
598.. function:: filter(function, iterable)
599
Georg Brandl952aea22007-09-04 17:50:40 +0000600 Construct an iterator from those elements of *iterable* for which *function*
601 returns true. *iterable* may be either a sequence, a container which
Georg Brandl9afde1c2007-11-01 20:32:30 +0000602 supports iteration, or an iterator. If *function* is ``None``, the identity
603 function is assumed, that is, all elements of *iterable* that are false are
604 removed.
Georg Brandl116aa622007-08-15 14:28:22 +0000605
Georg Brandl952aea22007-09-04 17:50:40 +0000606 Note that ``filter(function, iterable)`` is equivalent to the generator
607 expression ``(item for item in iterable if function(item))`` if function is
608 not ``None`` and ``(item for item in iterable if item)`` if function is
609 ``None``.
Georg Brandl116aa622007-08-15 14:28:22 +0000610
Raymond Hettingercdf8ba32009-02-19 04:45:07 +0000611 See :func:`itertools.filterfalse` for the complementary function that returns
612 elements of *iterable* for which *function* returns false.
613
Georg Brandl116aa622007-08-15 14:28:22 +0000614
Georg Brandleb7e8f62014-10-06 13:54:36 +0200615.. class:: float([x])
Georg Brandl116aa622007-08-15 14:28:22 +0000616
Mark Dickinson47c74ac2010-11-21 21:09:58 +0000617 .. index::
618 single: NaN
619 single: Infinity
Georg Brandl116aa622007-08-15 14:28:22 +0000620
Georg Brandleb7e8f62014-10-06 13:54:36 +0200621 Return a floating point number constructed from a number or string *x*.
Georg Brandl116aa622007-08-15 14:28:22 +0000622
Mark Dickinson47c74ac2010-11-21 21:09:58 +0000623 If the argument is a string, it should contain a decimal number, optionally
624 preceded by a sign, and optionally embedded in whitespace. The optional
625 sign may be ``'+'`` or ``'-'``; a ``'+'`` sign has no effect on the value
626 produced. The argument may also be a string representing a NaN
Miss Islington (bot)2d049202021-07-19 09:38:56 -0700627 (not-a-number), or positive or negative infinity. More precisely, the
Mark Dickinson47c74ac2010-11-21 21:09:58 +0000628 input must conform to the following grammar after leading and trailing
629 whitespace characters are removed:
Georg Brandl116aa622007-08-15 14:28:22 +0000630
Victor Stinner8af239e2020-09-18 09:10:15 +0200631 .. productionlist:: float
Mark Dickinson47c74ac2010-11-21 21:09:58 +0000632 sign: "+" | "-"
633 infinity: "Infinity" | "inf"
634 nan: "nan"
Georg Brandl46402372010-12-04 19:06:18 +0000635 numeric_value: `floatnumber` | `infinity` | `nan`
636 numeric_string: [`sign`] `numeric_value`
Mark Dickinson47c74ac2010-11-21 21:09:58 +0000637
638 Here ``floatnumber`` is the form of a Python floating-point literal,
639 described in :ref:`floating`. Case is not significant, so, for example,
Miss Islington (bot)2d049202021-07-19 09:38:56 -0700640 "inf", "Inf", "INFINITY", and "iNfINity" are all acceptable spellings for
Mark Dickinson47c74ac2010-11-21 21:09:58 +0000641 positive infinity.
642
643 Otherwise, if the argument is an integer or a floating point number, a
644 floating point number with the same value (within Python's floating point
645 precision) is returned. If the argument is outside the range of a Python
646 float, an :exc:`OverflowError` will be raised.
647
648 For a general Python object ``x``, ``float(x)`` delegates to
Serhiy Storchakabdbad712019-06-02 00:05:48 +0300649 ``x.__float__()``. If ``__float__()`` is not defined then it falls back
650 to :meth:`__index__`.
Mark Dickinson47c74ac2010-11-21 21:09:58 +0000651
652 If no argument is given, ``0.0`` is returned.
653
654 Examples::
655
656 >>> float('+1.23')
657 1.23
658 >>> float(' -12345\n')
659 -12345.0
660 >>> float('1e-003')
661 0.001
662 >>> float('+1E6')
663 1000000.0
664 >>> float('-Infinity')
665 -inf
Georg Brandl116aa622007-08-15 14:28:22 +0000666
667 The float type is described in :ref:`typesnumeric`.
668
Brett Cannona721aba2016-09-09 14:57:09 -0700669 .. versionchanged:: 3.6
670 Grouping digits with underscores as in code literals is allowed.
Chris Jerdonekbb4e9412012-11-28 01:38:40 -0800671
Louis Sautier3fe89da2018-08-27 12:45:26 +0200672 .. versionchanged:: 3.7
673 *x* is now a positional-only parameter.
674
Serhiy Storchakabdbad712019-06-02 00:05:48 +0300675 .. versionchanged:: 3.8
676 Falls back to :meth:`__index__` if :meth:`__float__` is not defined.
677
Éric Araujo9edd9f02011-09-01 23:08:55 +0200678
Brett Cannona721aba2016-09-09 14:57:09 -0700679.. index::
680 single: __format__
681 single: string; format() (built-in function)
682
Georg Brandl4b491312007-08-31 09:22:56 +0000683.. function:: format(value[, format_spec])
684
Georg Brandl5579ba92009-02-23 10:24:05 +0000685 Convert a *value* to a "formatted" representation, as controlled by
686 *format_spec*. The interpretation of *format_spec* will depend on the type
Miss Islington (bot)2d049202021-07-19 09:38:56 -0700687 of the *value* argument; however, there is a standard formatting syntax that
Georg Brandl5579ba92009-02-23 10:24:05 +0000688 is used by most built-in types: :ref:`formatspec`.
Georg Brandl48310cd2009-01-03 21:18:54 +0000689
Raymond Hettinger30439b22011-05-11 10:47:27 -0700690 The default *format_spec* is an empty string which usually gives the same
Chris Jerdonek5fae0e52012-11-20 17:45:51 -0800691 effect as calling :func:`str(value) <str>`.
Georg Brandl4b491312007-08-31 09:22:56 +0000692
Raymond Hettinger30439b22011-05-11 10:47:27 -0700693 A call to ``format(value, format_spec)`` is translated to
Georg Brandle4196d32014-10-31 09:41:46 +0100694 ``type(value).__format__(value, format_spec)`` which bypasses the instance
Raymond Hettinger30439b22011-05-11 10:47:27 -0700695 dictionary when searching for the value's :meth:`__format__` method. A
Larry Hastings3732ed22014-03-15 21:13:56 -0700696 :exc:`TypeError` exception is raised if the method search reaches
697 :mod:`object` and the *format_spec* is non-empty, or if either the
698 *format_spec* or the return value are not strings.
Georg Brandl4b491312007-08-31 09:22:56 +0000699
Larry Hastings3732ed22014-03-15 21:13:56 -0700700 .. versionchanged:: 3.4
Andrew Svetlov0794fe02012-12-23 15:12:19 +0200701 ``object().__format__(format_spec)`` raises :exc:`TypeError`
Larry Hastings3732ed22014-03-15 21:13:56 -0700702 if *format_spec* is not an empty string.
Andrew Svetlov0794fe02012-12-23 15:12:19 +0200703
Éric Araujo9edd9f02011-09-01 23:08:55 +0200704
705.. _func-frozenset:
Georg Brandleb7e8f62014-10-06 13:54:36 +0200706.. class:: frozenset([iterable])
Georg Brandl116aa622007-08-15 14:28:22 +0000707 :noindex:
708
Chris Jerdonekdf3abec2012-11-09 18:57:32 -0800709 Return a new :class:`frozenset` object, optionally with elements taken from
710 *iterable*. ``frozenset`` is a built-in class. See :class:`frozenset` and
711 :ref:`types-set` for documentation about this class.
Georg Brandl116aa622007-08-15 14:28:22 +0000712
Chris Jerdonekdf3abec2012-11-09 18:57:32 -0800713 For other containers see the built-in :class:`set`, :class:`list`,
714 :class:`tuple`, and :class:`dict` classes, as well as the :mod:`collections`
715 module.
Georg Brandl116aa622007-08-15 14:28:22 +0000716
Georg Brandl116aa622007-08-15 14:28:22 +0000717
718.. function:: getattr(object, name[, default])
719
Georg Brandl8e4ddcf2010-10-16 18:51:05 +0000720 Return the value of the named attribute of *object*. *name* must be a string.
Georg Brandl116aa622007-08-15 14:28:22 +0000721 If the string is the name of one of the object's attributes, the result is the
722 value of that attribute. For example, ``getattr(x, 'foobar')`` is equivalent to
723 ``x.foobar``. If the named attribute does not exist, *default* is returned if
724 provided, otherwise :exc:`AttributeError` is raised.
725
Ken Jin2edaf6a2021-02-03 05:06:57 +0800726 .. note::
727
728 Since :ref:`private name mangling <private-name-mangling>` happens at
729 compilation time, one must manually mangle a private attribute's
730 (attributes with two leading underscores) name in order to retrieve it with
731 :func:`getattr`.
732
Georg Brandl116aa622007-08-15 14:28:22 +0000733
734.. function:: globals()
735
Miss Islington (bot)1f700082021-12-10 16:32:13 -0800736 Return the dictionary implementing the current module namespace. For code within
737 functions, this is set when the function is defined and remains the same
738 regardless of where the function is called.
Georg Brandl116aa622007-08-15 14:28:22 +0000739
740
741.. function:: hasattr(object, name)
742
Benjamin Peterson17689992010-08-24 03:26:23 +0000743 The arguments are an object and a string. The result is ``True`` if the
744 string is the name of one of the object's attributes, ``False`` if not. (This
745 is implemented by calling ``getattr(object, name)`` and seeing whether it
746 raises an :exc:`AttributeError` or not.)
Georg Brandl116aa622007-08-15 14:28:22 +0000747
748
749.. function:: hash(object)
750
Barry Warsaw224a5992013-07-15 14:47:29 -0400751 Return the hash value of the object (if it has one). Hash values are
752 integers. They are used to quickly compare dictionary keys during a
753 dictionary lookup. Numeric values that compare equal have the same hash
754 value (even if they are of different types, as is the case for 1 and 1.0).
Georg Brandl116aa622007-08-15 14:28:22 +0000755
Andrés Delfinobda9c3e2018-06-29 06:57:10 -0300756 .. note::
Barry Warsaw224a5992013-07-15 14:47:29 -0400757
Andrés Delfinobda9c3e2018-06-29 06:57:10 -0300758 For objects with custom :meth:`__hash__` methods, note that :func:`hash`
759 truncates the return value based on the bit width of the host machine.
760 See :meth:`__hash__` for details.
Georg Brandl116aa622007-08-15 14:28:22 +0000761
762.. function:: help([object])
763
764 Invoke the built-in help system. (This function is intended for interactive
765 use.) If no argument is given, the interactive help system starts on the
766 interpreter console. If the argument is a string, then the string is looked up
767 as the name of a module, function, class, method, keyword, or documentation
768 topic, and a help page is printed on the console. If the argument is any other
769 kind of object, a help page on the object is generated.
770
Miss Islington (bot)2d049202021-07-19 09:38:56 -0700771 Note that if a slash(/) appears in the parameter list of a function when
Lysandros Nikolaou1aeeaeb2019-03-10 12:30:11 +0100772 invoking :func:`help`, it means that the parameters prior to the slash are
773 positional-only. For more info, see
774 :ref:`the FAQ entry on positional-only parameters <faq-positional-only-arguments>`.
775
Christian Heimes9bd667a2008-01-20 15:14:11 +0000776 This function is added to the built-in namespace by the :mod:`site` module.
777
Larry Hastings3732ed22014-03-15 21:13:56 -0700778 .. versionchanged:: 3.4
779 Changes to :mod:`pydoc` and :mod:`inspect` mean that the reported
780 signatures for callables are now more comprehensive and consistent.
781
Georg Brandl116aa622007-08-15 14:28:22 +0000782
783.. function:: hex(x)
784
Manvisha Kodali67ba4fa2017-07-06 22:30:58 +0300785 Convert an integer number to a lowercase hexadecimal string prefixed with
Serhiy Storchakadf00f042018-05-10 16:38:44 +0300786 "0x". If *x* is not a Python :class:`int` object, it has to define an
787 :meth:`__index__` method that returns an integer. Some examples:
Larry Hastings3732ed22014-03-15 21:13:56 -0700788
789 >>> hex(255)
790 '0xff'
791 >>> hex(-42)
792 '-0x2a'
793
Manvisha Kodali67ba4fa2017-07-06 22:30:58 +0300794 If you want to convert an integer number to an uppercase or lower hexadecimal
795 string with prefix or not, you can use either of the following ways:
796
797 >>> '%#x' % 255, '%x' % 255, '%X' % 255
798 ('0xff', 'ff', 'FF')
799 >>> format(255, '#x'), format(255, 'x'), format(255, 'X')
800 ('0xff', 'ff', 'FF')
801 >>> f'{255:#x}', f'{255:x}', f'{255:X}'
802 ('0xff', 'ff', 'FF')
803
804 See also :func:`format` for more information.
Larry Hastings3732ed22014-03-15 21:13:56 -0700805
806 See also :func:`int` for converting a hexadecimal string to an
807 integer using a base of 16.
Georg Brandl116aa622007-08-15 14:28:22 +0000808
Mark Dickinson36cea392009-10-03 10:18:40 +0000809 .. note::
810
811 To obtain a hexadecimal string representation for a float, use the
812 :meth:`float.hex` method.
813
Georg Brandl116aa622007-08-15 14:28:22 +0000814
815.. function:: id(object)
816
Georg Brandlba956ae2007-11-29 17:24:34 +0000817 Return the "identity" of an object. This is an integer which
Georg Brandl116aa622007-08-15 14:28:22 +0000818 is guaranteed to be unique and constant for this object during its lifetime.
Georg Brandl495f7b52009-10-27 15:28:25 +0000819 Two objects with non-overlapping lifetimes may have the same :func:`id`
820 value.
821
Éric Araujof33de712011-05-27 04:42:47 +0200822 .. impl-detail:: This is the address of the object in memory.
Georg Brandl116aa622007-08-15 14:28:22 +0000823
Saiyang Gou3f7e9902020-10-20 12:23:15 -0700824 .. audit-event:: builtins.id id id
825
Georg Brandl116aa622007-08-15 14:28:22 +0000826
Georg Brandlc0902982007-09-12 21:29:27 +0000827.. function:: input([prompt])
828
829 If the *prompt* argument is present, it is written to standard output without
830 a trailing newline. The function then reads a line from input, converts it
831 to a string (stripping a trailing newline), and returns that. When EOF is
832 read, :exc:`EOFError` is raised. Example::
833
Andrew Svetlov439e17f2012-08-12 15:16:42 +0300834 >>> s = input('--> ') # doctest: +SKIP
Georg Brandlc0902982007-09-12 21:29:27 +0000835 --> Monty Python's Flying Circus
Andrew Svetlov439e17f2012-08-12 15:16:42 +0300836 >>> s # doctest: +SKIP
Georg Brandlc0902982007-09-12 21:29:27 +0000837 "Monty Python's Flying Circus"
838
Georg Brandl7b469422007-09-12 21:32:27 +0000839 If the :mod:`readline` module was loaded, then :func:`input` will use it
Georg Brandlc0902982007-09-12 21:29:27 +0000840 to provide elaborate line editing and history features.
841
Steve Dower44f91c32019-06-27 10:47:59 -0700842 .. audit-event:: builtins.input prompt input
Steve Dowerb82e17e2019-05-23 08:45:22 -0700843
Steve Dower60419a72019-06-24 08:42:54 -0700844 Raises an :ref:`auditing event <auditing>` ``builtins.input`` with
Steve Dowerb82e17e2019-05-23 08:45:22 -0700845 argument ``prompt`` before reading input
846
Steve Dower44f91c32019-06-27 10:47:59 -0700847 .. audit-event:: builtins.input/result result input
Steve Dowerb82e17e2019-05-23 08:45:22 -0700848
849 Raises an auditing event ``builtins.input/result`` with the result after
850 successfully reading input.
851
Georg Brandlc0902982007-09-12 21:29:27 +0000852
Louis Sautier3fe89da2018-08-27 12:45:26 +0200853.. class:: int([x])
Georg Brandleb7e8f62014-10-06 13:54:36 +0200854 int(x, base=10)
Georg Brandl116aa622007-08-15 14:28:22 +0000855
Georg Brandleb7e8f62014-10-06 13:54:36 +0200856 Return an integer object constructed from a number or string *x*, or return
Serhiy Storchakadf00f042018-05-10 16:38:44 +0300857 ``0`` if no arguments are given. If *x* defines :meth:`__int__`,
Serhiy Storchakabdbad712019-06-02 00:05:48 +0300858 ``int(x)`` returns ``x.__int__()``. If *x* defines :meth:`__index__`,
859 it returns ``x.__index__()``. If *x* defines :meth:`__trunc__`,
Serhiy Storchakadf00f042018-05-10 16:38:44 +0300860 it returns ``x.__trunc__()``.
861 For floating point numbers, this truncates towards zero.
Chris Jerdonek57491e02012-09-28 00:10:44 -0700862
863 If *x* is not a number or if *base* is given, then *x* must be a string,
864 :class:`bytes`, or :class:`bytearray` instance representing an :ref:`integer
865 literal <integers>` in radix *base*. Optionally, the literal can be
866 preceded by ``+`` or ``-`` (with no space in between) and surrounded by
867 whitespace. A base-n literal consists of the digits 0 to n-1, with ``a``
868 to ``z`` (or ``A`` to ``Z``) having
Serhiy Storchakac7b1a0b2016-11-26 13:43:28 +0200869 values 10 to 35. The default *base* is 10. The allowed values are 0 and 2--36.
Georg Brandl225d3c82008-04-09 18:45:14 +0000870 Base-2, -8, and -16 literals can be optionally prefixed with ``0b``/``0B``,
Georg Brandl1b5ab452009-08-13 07:56:35 +0000871 ``0o``/``0O``, or ``0x``/``0X``, as with integer literals in code. Base 0
872 means to interpret exactly as a code literal, so that the actual base is 2,
Georg Brandl225d3c82008-04-09 18:45:14 +0000873 8, 10, or 16, and so that ``int('010', 0)`` is not legal, while
874 ``int('010')`` is, as well as ``int('010', 8)``.
Georg Brandl116aa622007-08-15 14:28:22 +0000875
876 The integer type is described in :ref:`typesnumeric`.
877
Mark Dickinson07c71362013-01-27 10:17:52 +0000878 .. versionchanged:: 3.4
879 If *base* is not an instance of :class:`int` and the *base* object has a
880 :meth:`base.__index__ <object.__index__>` method, that method is called
881 to obtain an integer for the base. Previous versions used
882 :meth:`base.__int__ <object.__int__>` instead of :meth:`base.__index__
883 <object.__index__>`.
Georg Brandl116aa622007-08-15 14:28:22 +0000884
Brett Cannona721aba2016-09-09 14:57:09 -0700885 .. versionchanged:: 3.6
886 Grouping digits with underscores as in code literals is allowed.
887
Louis Sautier3fe89da2018-08-27 12:45:26 +0200888 .. versionchanged:: 3.7
889 *x* is now a positional-only parameter.
890
Serhiy Storchakabdbad712019-06-02 00:05:48 +0300891 .. versionchanged:: 3.8
892 Falls back to :meth:`__index__` if :meth:`__int__` is not defined.
893
Brett Cannona721aba2016-09-09 14:57:09 -0700894
Georg Brandl116aa622007-08-15 14:28:22 +0000895.. function:: isinstance(object, classinfo)
896
Serhiy Storchaka138ccbb2019-11-12 16:57:03 +0200897 Return ``True`` if the *object* argument is an instance of the *classinfo*
Miss Islington (bot)2d049202021-07-19 09:38:56 -0700898 argument, or of a (direct, indirect, or :term:`virtual <abstract base
Éric Araujoe8b7eb02011-08-19 02:17:03 +0200899 class>`) subclass thereof. If *object* is not
Serhiy Storchaka138ccbb2019-11-12 16:57:03 +0200900 an object of the given type, the function always returns ``False``.
Terry Jan Reedy68b68742015-10-28 03:14:56 -0400901 If *classinfo* is a tuple of type objects (or recursively, other such
Ken Jin5f77dee2021-02-09 09:57:11 +0800902 tuples) or a :ref:`types-union` of multiple types, return ``True`` if
903 *object* is an instance of any of the types.
Terry Jan Reedy68b68742015-10-28 03:14:56 -0400904 If *classinfo* is not a type or tuple of types and such tuples,
Georg Brandl85eb8c12007-08-31 16:33:38 +0000905 a :exc:`TypeError` exception is raised.
Georg Brandl116aa622007-08-15 14:28:22 +0000906
Ken Jin5f77dee2021-02-09 09:57:11 +0800907 .. versionchanged:: 3.10
908 *classinfo* can be a :ref:`types-union`.
909
Georg Brandl116aa622007-08-15 14:28:22 +0000910
911.. function:: issubclass(class, classinfo)
912
Miss Islington (bot)2d049202021-07-19 09:38:56 -0700913 Return ``True`` if *class* is a subclass (direct, indirect, or :term:`virtual
Éric Araujoe8b7eb02011-08-19 02:17:03 +0200914 <abstract base class>`) of *classinfo*. A
Georg Brandl116aa622007-08-15 14:28:22 +0000915 class is considered a subclass of itself. *classinfo* may be a tuple of class
Miss Islington (bot)8711b3d2021-08-31 09:25:08 -0700916 objects or a :ref:`types-union`, in which case return ``True`` if *class* is a
Miss Islington (bot)ab8fed82021-08-31 07:23:22 -0700917 subclass of any entry in *classinfo*. In any other case, a :exc:`TypeError`
918 exception is raised.
Georg Brandl116aa622007-08-15 14:28:22 +0000919
Ken Jin5f77dee2021-02-09 09:57:11 +0800920 .. versionchanged:: 3.10
921 *classinfo* can be a :ref:`types-union`.
922
Georg Brandl116aa622007-08-15 14:28:22 +0000923
Georg Brandl036490d2009-05-17 13:00:36 +0000924.. function:: iter(object[, sentinel])
Georg Brandl116aa622007-08-15 14:28:22 +0000925
Georg Brandl036490d2009-05-17 13:00:36 +0000926 Return an :term:`iterator` object. The first argument is interpreted very
927 differently depending on the presence of the second argument. Without a
928 second argument, *object* must be a collection object which supports the
Brett Cannon99aad312021-11-22 15:09:15 -0800929 :term:`iterable` protocol (the :meth:`__iter__` method), or it must support
930 the sequence protocol (the :meth:`__getitem__` method with integer arguments
Georg Brandl036490d2009-05-17 13:00:36 +0000931 starting at ``0``). If it does not support either of those protocols,
932 :exc:`TypeError` is raised. If the second argument, *sentinel*, is given,
933 then *object* must be a callable object. The iterator created in this case
Ezio Melotti7fa82222012-10-12 13:42:08 +0300934 will call *object* with no arguments for each call to its
935 :meth:`~iterator.__next__` method; if the value returned is equal to
936 *sentinel*, :exc:`StopIteration` will be raised, otherwise the value will
937 be returned.
Georg Brandl116aa622007-08-15 14:28:22 +0000938
Chris Jerdonek006d9072012-10-12 20:28:26 -0700939 See also :ref:`typeiter`.
940
Chris Randsd378b1f2018-12-24 06:07:17 +0100941 One useful application of the second form of :func:`iter` is to build a
942 block-reader. For example, reading fixed-width blocks from a binary
943 database file until the end of file is reached::
Benjamin Petersonf07d0022009-03-21 17:31:58 +0000944
Chris Randsd378b1f2018-12-24 06:07:17 +0100945 from functools import partial
946 with open('mydata.db', 'rb') as f:
Cristian Ciupitu11fa0e42019-02-21 09:53:06 +0200947 for block in iter(partial(f.read, 64), b''):
Chris Randsd378b1f2018-12-24 06:07:17 +0100948 process_block(block)
Benjamin Petersonf07d0022009-03-21 17:31:58 +0000949
Georg Brandl116aa622007-08-15 14:28:22 +0000950
951.. function:: len(s)
952
953 Return the length (the number of items) of an object. The argument may be a
Terry Jan Reedyf2fb73f2014-06-16 03:05:37 -0400954 sequence (such as a string, bytes, tuple, list, or range) or a collection
955 (such as a dictionary, set, or frozen set).
Georg Brandl116aa622007-08-15 14:28:22 +0000956
Zac Hatfield-Doddsd7c7add2020-01-12 19:04:14 +1000957 .. impl-detail::
958
959 ``len`` raises :exc:`OverflowError` on lengths larger than
960 :data:`sys.maxsize`, such as :class:`range(2 ** 100) <range>`.
961
Georg Brandl116aa622007-08-15 14:28:22 +0000962
Nick Coghlan83c0ae52012-08-21 17:42:52 +1000963.. _func-list:
Georg Brandleb7e8f62014-10-06 13:54:36 +0200964.. class:: list([iterable])
Nick Coghlan83c0ae52012-08-21 17:42:52 +1000965 :noindex:
Georg Brandl116aa622007-08-15 14:28:22 +0000966
Nick Coghlan83c0ae52012-08-21 17:42:52 +1000967 Rather than being a function, :class:`list` is actually a mutable
Chris Jerdonek006d9072012-10-12 20:28:26 -0700968 sequence type, as documented in :ref:`typesseq-list` and :ref:`typesseq`.
Georg Brandl116aa622007-08-15 14:28:22 +0000969
Georg Brandl036490d2009-05-17 13:00:36 +0000970
Georg Brandl116aa622007-08-15 14:28:22 +0000971.. function:: locals()
972
973 Update and return a dictionary representing the current local symbol table.
Benjamin Peterson4ac9ce42009-10-04 14:49:41 +0000974 Free variables are returned by :func:`locals` when it is called in function
Srinivas Reddy Thatiparthy (శ్రీనివాస్ రెడ్డి తాటిపర్తి)1c5fa5a2019-04-02 23:28:50 +0530975 blocks, but not in class blocks. Note that at the module level, :func:`locals`
976 and :func:`globals` are the same dictionary.
Georg Brandl116aa622007-08-15 14:28:22 +0000977
Georg Brandle720c0a2009-04-27 16:20:50 +0000978 .. note::
Georg Brandl036490d2009-05-17 13:00:36 +0000979 The contents of this dictionary should not be modified; changes may not
Benjamin Peterson4ac9ce42009-10-04 14:49:41 +0000980 affect the values of local and free variables used by the interpreter.
Georg Brandl116aa622007-08-15 14:28:22 +0000981
982.. function:: map(function, iterable, ...)
983
Georg Brandl952aea22007-09-04 17:50:40 +0000984 Return an iterator that applies *function* to every item of *iterable*,
985 yielding the results. If additional *iterable* arguments are passed,
986 *function* must take that many arguments and is applied to the items from all
Georg Brandlde2b00e2008-05-05 21:04:12 +0000987 iterables in parallel. With multiple iterables, the iterator stops when the
Raymond Hettingercdf8ba32009-02-19 04:45:07 +0000988 shortest iterable is exhausted. For cases where the function inputs are
989 already arranged into argument tuples, see :func:`itertools.starmap`\.
Georg Brandlde2b00e2008-05-05 21:04:12 +0000990
Georg Brandl116aa622007-08-15 14:28:22 +0000991
Raymond Hettingerf4284e42014-04-02 00:58:47 -0700992.. function:: max(iterable, *[, key, default])
Ezio Melottie0add762012-09-14 06:32:35 +0300993 max(arg1, arg2, *args[, key])
Georg Brandl116aa622007-08-15 14:28:22 +0000994
Ezio Melottie0add762012-09-14 06:32:35 +0300995 Return the largest item in an iterable or the largest of two or more
996 arguments.
997
Raymond Hettinger4d6018f2013-06-24 22:43:02 -0700998 If one positional argument is provided, it should be an :term:`iterable`.
999 The largest item in the iterable is returned. If two or more positional
Raymond Hettingerb30b34c2014-04-03 08:01:22 -07001000 arguments are provided, the largest of the positional arguments is
Raymond Hettinger4d6018f2013-06-24 22:43:02 -07001001 returned.
Georg Brandl116aa622007-08-15 14:28:22 +00001002
Raymond Hettinger4d6018f2013-06-24 22:43:02 -07001003 There are two optional keyword-only arguments. The *key* argument specifies
1004 a one-argument ordering function like that used for :meth:`list.sort`. The
1005 *default* argument specifies an object to return if the provided iterable is
1006 empty. If the iterable is empty and *default* is not provided, a
1007 :exc:`ValueError` is raised.
Georg Brandl116aa622007-08-15 14:28:22 +00001008
Georg Brandl682d7e02010-10-06 10:26:05 +00001009 If multiple items are maximal, the function returns the first one
1010 encountered. This is consistent with other sort-stability preserving tools
1011 such as ``sorted(iterable, key=keyfunc, reverse=True)[0]`` and
Raymond Hettinger476a31e2010-09-14 23:13:42 +00001012 ``heapq.nlargest(1, iterable, key=keyfunc)``.
Georg Brandl116aa622007-08-15 14:28:22 +00001013
Larry Hastings3732ed22014-03-15 21:13:56 -07001014 .. versionadded:: 3.4
1015 The *default* keyword-only argument.
1016
Alexander Marshalove22072f2018-07-24 10:58:21 +07001017 .. versionchanged:: 3.8
1018 The *key* can be ``None``.
1019
Éric Araujo9edd9f02011-09-01 23:08:55 +02001020
1021.. _func-memoryview:
Miss Islington (bot)05f8ad02021-05-25 07:30:00 -07001022.. class:: memoryview(object)
Benjamin Peterson6dfcb022008-09-10 21:02:02 +00001023 :noindex:
Georg Brandl85eb8c12007-08-31 16:33:38 +00001024
Benjamin Peterson1b25b922008-09-09 22:15:27 +00001025 Return a "memory view" object created from the given argument. See
1026 :ref:`typememoryview` for more information.
Georg Brandl85eb8c12007-08-31 16:33:38 +00001027
1028
Raymond Hettingerf4284e42014-04-02 00:58:47 -07001029.. function:: min(iterable, *[, key, default])
Ezio Melottie0add762012-09-14 06:32:35 +03001030 min(arg1, arg2, *args[, key])
Georg Brandl116aa622007-08-15 14:28:22 +00001031
Ezio Melottie0add762012-09-14 06:32:35 +03001032 Return the smallest item in an iterable or the smallest of two or more
1033 arguments.
1034
Raymond Hettinger4d6018f2013-06-24 22:43:02 -07001035 If one positional argument is provided, it should be an :term:`iterable`.
1036 The smallest item in the iterable is returned. If two or more positional
1037 arguments are provided, the smallest of the positional arguments is
1038 returned.
Georg Brandl116aa622007-08-15 14:28:22 +00001039
Raymond Hettinger4d6018f2013-06-24 22:43:02 -07001040 There are two optional keyword-only arguments. The *key* argument specifies
1041 a one-argument ordering function like that used for :meth:`list.sort`. The
1042 *default* argument specifies an object to return if the provided iterable is
1043 empty. If the iterable is empty and *default* is not provided, a
1044 :exc:`ValueError` is raised.
Georg Brandl116aa622007-08-15 14:28:22 +00001045
Georg Brandl682d7e02010-10-06 10:26:05 +00001046 If multiple items are minimal, the function returns the first one
1047 encountered. This is consistent with other sort-stability preserving tools
1048 such as ``sorted(iterable, key=keyfunc)[0]`` and ``heapq.nsmallest(1,
1049 iterable, key=keyfunc)``.
Georg Brandl116aa622007-08-15 14:28:22 +00001050
Larry Hastings3732ed22014-03-15 21:13:56 -07001051 .. versionadded:: 3.4
1052 The *default* keyword-only argument.
1053
Alexander Marshalove22072f2018-07-24 10:58:21 +07001054 .. versionchanged:: 3.8
1055 The *key* can be ``None``.
1056
Georg Brandldf48b972014-03-24 09:06:18 +01001057
Georg Brandl116aa622007-08-15 14:28:22 +00001058.. function:: next(iterator[, default])
1059
Brett Cannon99aad312021-11-22 15:09:15 -08001060 Retrieve the next item from the :term:`iterator` by calling its
Ezio Melotti7fa82222012-10-12 13:42:08 +03001061 :meth:`~iterator.__next__` method. If *default* is given, it is returned
1062 if the iterator is exhausted, otherwise :exc:`StopIteration` is raised.
Georg Brandl116aa622007-08-15 14:28:22 +00001063
1064
Georg Brandleb7e8f62014-10-06 13:54:36 +02001065.. class:: object()
Georg Brandl116aa622007-08-15 14:28:22 +00001066
Georg Brandl85eb8c12007-08-31 16:33:38 +00001067 Return a new featureless object. :class:`object` is a base for all classes.
Miss Islington (bot)2d049202021-07-19 09:38:56 -07001068 It has methods that are common to all instances of Python classes. This
Georg Brandl55ac8f02007-09-01 13:51:09 +00001069 function does not accept any arguments.
Georg Brandl85eb8c12007-08-31 16:33:38 +00001070
1071 .. note::
1072
Serhiy Storchaka0d196ed2013-10-09 14:02:31 +03001073 :class:`object` does *not* have a :attr:`~object.__dict__`, so you can't
1074 assign arbitrary attributes to an instance of the :class:`object` class.
Georg Brandl116aa622007-08-15 14:28:22 +00001075
Georg Brandl116aa622007-08-15 14:28:22 +00001076
1077.. function:: oct(x)
1078
Manvisha Kodali67ba4fa2017-07-06 22:30:58 +03001079 Convert an integer number to an octal string prefixed with "0o". The result
1080 is a valid Python expression. If *x* is not a Python :class:`int` object, it
1081 has to define an :meth:`__index__` method that returns an integer. For
1082 example:
Georg Brandl116aa622007-08-15 14:28:22 +00001083
Manvisha Kodali67ba4fa2017-07-06 22:30:58 +03001084 >>> oct(8)
1085 '0o10'
1086 >>> oct(-56)
1087 '-0o70'
1088
Miss Islington (bot)2d049202021-07-19 09:38:56 -07001089 If you want to convert an integer number to an octal string either with the prefix
Manvisha Kodali67ba4fa2017-07-06 22:30:58 +03001090 "0o" or not, you can use either of the following ways.
1091
1092 >>> '%#o' % 10, '%o' % 10
1093 ('0o12', '12')
1094 >>> format(10, '#o'), format(10, 'o')
1095 ('0o12', '12')
1096 >>> f'{10:#o}', f'{10:o}'
1097 ('0o12', '12')
1098
1099 See also :func:`format` for more information.
Georg Brandl116aa622007-08-15 14:28:22 +00001100
R David Murray9f0c9402012-08-17 20:33:54 -04001101 .. index::
1102 single: file object; open() built-in function
1103
Ross Lagerwall59142db2011-10-31 20:34:46 +02001104.. function:: open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)
Georg Brandl116aa622007-08-15 14:28:22 +00001105
R David Murray9f0c9402012-08-17 20:33:54 -04001106 Open *file* and return a corresponding :term:`file object`. If the file
Benjamin Kane705f1452020-08-07 19:57:03 -07001107 cannot be opened, an :exc:`OSError` is raised. See
1108 :ref:`tut-files` for more examples of how to use this function.
Georg Brandl48310cd2009-01-03 21:18:54 +00001109
Brett Cannon6fa7aad2016-09-06 15:55:02 -07001110 *file* is a :term:`path-like object` giving the pathname (absolute or
1111 relative to the current working directory) of the file to be opened or an
1112 integer file descriptor of the file to be wrapped. (If a file descriptor is
Miss Islington (bot)2d049202021-07-19 09:38:56 -07001113 given, it is closed when the returned I/O object is closed unless *closefd*
Brett Cannon6fa7aad2016-09-06 15:55:02 -07001114 is set to ``False``.)
Georg Brandl116aa622007-08-15 14:28:22 +00001115
Mark Summerfieldecff60e2007-12-14 10:07:44 +00001116 *mode* is an optional string that specifies the mode in which the file is
Benjamin Peterson4e4ffb12010-08-30 12:46:09 +00001117 opened. It defaults to ``'r'`` which means open for reading in text mode.
1118 Other common values are ``'w'`` for writing (truncating the file if it
Miss Islington (bot)2d049202021-07-19 09:38:56 -07001119 already exists), ``'x'`` for exclusive creation, and ``'a'`` for appending
Charles-François Natalib93f9fa2012-05-20 11:41:53 +02001120 (which on *some* Unix systems, means that *all* writes append to the end of
1121 the file regardless of the current seek position). In text mode, if
Miss Islington (bot)2d049202021-07-19 09:38:56 -07001122 *encoding* is not specified the encoding used is platform-dependent:
Victor Stinnerf86a5e82012-06-05 13:43:22 +02001123 ``locale.getpreferredencoding(False)`` is called to get the current locale
1124 encoding. (For reading and writing raw bytes use binary mode and leave
1125 *encoding* unspecified.) The available modes are:
Georg Brandl116aa622007-08-15 14:28:22 +00001126
Andrés Delfinoa8ddf852018-06-25 03:06:10 -03001127 .. _filemodes:
1128
1129 .. index::
1130 pair: file; modes
1131
Benjamin Petersondd219122008-04-11 21:17:32 +00001132 ========= ===============================================================
1133 Character Meaning
Georg Brandl44ea77b2013-03-28 13:28:44 +01001134 ========= ===============================================================
Benjamin Petersondd219122008-04-11 21:17:32 +00001135 ``'r'`` open for reading (default)
Benjamin Peterson4e4ffb12010-08-30 12:46:09 +00001136 ``'w'`` open for writing, truncating the file first
Charles-François Natalib93f9fa2012-05-20 11:41:53 +02001137 ``'x'`` open for exclusive creation, failing if the file already exists
Miss Islington (bot)2d049202021-07-19 09:38:56 -07001138 ``'a'`` open for writing, appending to the end of file if it exists
Georg Brandl7b6ca4a2009-04-27 06:13:55 +00001139 ``'b'`` binary mode
Benjamin Peterson4e4ffb12010-08-30 12:46:09 +00001140 ``'t'`` text mode (default)
Andre Delfinoc1d8c1c2019-09-10 10:04:22 -03001141 ``'+'`` open for updating (reading and writing)
Benjamin Petersondd219122008-04-11 21:17:32 +00001142 ========= ===============================================================
Mark Summerfieldecff60e2007-12-14 10:07:44 +00001143
Miss Islington (bot)2d049202021-07-19 09:38:56 -07001144 The default mode is ``'r'`` (open for reading text, a synonym of ``'rt'``).
Andre Delfino05184512019-09-10 11:48:05 -03001145 Modes ``'w+'`` and ``'w+b'`` open and truncate the file. Modes ``'r+'``
1146 and ``'r+b'`` open the file with no truncation.
Skip Montanaro1c639602007-09-23 19:49:54 +00001147
Benjamin Peterson6b4fa772010-08-30 13:19:53 +00001148 As mentioned in the :ref:`io-overview`, Python distinguishes between binary
1149 and text I/O. Files opened in binary mode (including ``'b'`` in the *mode*
1150 argument) return contents as :class:`bytes` objects without any decoding. In
1151 text mode (the default, or when ``'t'`` is included in the *mode* argument),
1152 the contents of the file are returned as :class:`str`, the bytes having been
1153 first decoded using a platform-dependent encoding or using the specified
1154 *encoding* if given.
Mark Summerfieldecff60e2007-12-14 10:07:44 +00001155
Victor Stinner942f7a22020-03-04 18:50:22 +01001156 There is an additional mode character permitted, ``'U'``, which no longer
1157 has any effect, and is considered deprecated. It previously enabled
Miss Islington (bot)2d049202021-07-19 09:38:56 -07001158 :term:`universal newlines` in text mode, which became the default behavior
Victor Stinner942f7a22020-03-04 18:50:22 +01001159 in Python 3.0. Refer to the documentation of the
1160 :ref:`newline <open-newline-parameter>` parameter for further details.
1161
Benjamin Peterson4e4ffb12010-08-30 12:46:09 +00001162 .. note::
Benjamin Peterson4e4ffb12010-08-30 12:46:09 +00001163
Benjamin Peterson6b4fa772010-08-30 13:19:53 +00001164 Python doesn't depend on the underlying operating system's notion of text
Ezio Melottie130a522011-10-19 10:58:56 +03001165 files; all the processing is done by Python itself, and is therefore
Benjamin Peterson6b4fa772010-08-30 13:19:53 +00001166 platform-independent.
Benjamin Peterson4e4ffb12010-08-30 12:46:09 +00001167
Benjamin Peterson6b4fa772010-08-30 13:19:53 +00001168 *buffering* is an optional integer used to set the buffering policy. Pass 0
1169 to switch buffering off (only allowed in binary mode), 1 to select line
1170 buffering (only usable in text mode), and an integer > 1 to indicate the size
Terry Jan Reedydff04f42013-03-16 15:56:27 -04001171 in bytes of a fixed-size chunk buffer. When no *buffering* argument is
1172 given, the default buffering policy works as follows:
Benjamin Peterson4e4ffb12010-08-30 12:46:09 +00001173
Benjamin Peterson6b4fa772010-08-30 13:19:53 +00001174 * Binary files are buffered in fixed-size chunks; the size of the buffer is
1175 chosen using a heuristic trying to determine the underlying device's "block
1176 size" and falling back on :attr:`io.DEFAULT_BUFFER_SIZE`. On many systems,
1177 the buffer will typically be 4096 or 8192 bytes long.
1178
Serhiy Storchaka0d196ed2013-10-09 14:02:31 +03001179 * "Interactive" text files (files for which :meth:`~io.IOBase.isatty`
Serhiy Storchakafbc1c262013-11-29 12:17:13 +02001180 returns ``True``) use line buffering. Other text files use the policy
Serhiy Storchaka0d196ed2013-10-09 14:02:31 +03001181 described above for binary files.
Georg Brandl48310cd2009-01-03 21:18:54 +00001182
Benjamin Petersondd219122008-04-11 21:17:32 +00001183 *encoding* is the name of the encoding used to decode or encode the file.
1184 This should only be used in text mode. The default encoding is platform
Benjamin Peterson52c3bf12009-03-23 02:44:58 +00001185 dependent (whatever :func:`locale.getpreferredencoding` returns), but any
Nick Coghlanb9fdb7a2015-01-07 00:22:00 +10001186 :term:`text encoding` supported by Python
1187 can be used. See the :mod:`codecs` module for
Benjamin Peterson52c3bf12009-03-23 02:44:58 +00001188 the list of supported encodings.
Mark Summerfieldecff60e2007-12-14 10:07:44 +00001189
Benjamin Peterson52c3bf12009-03-23 02:44:58 +00001190 *errors* is an optional string that specifies how encoding and decoding
Martin Panter357ed2e2016-11-21 00:15:20 +00001191 errors are to be handled—this cannot be used in binary mode.
Nick Coghlanb9fdb7a2015-01-07 00:22:00 +10001192 A variety of standard error handlers are available
1193 (listed under :ref:`error-handlers`), though any
Andrew Kuchlingc7b6c502013-06-16 12:58:48 -04001194 error handling name that has been registered with
1195 :func:`codecs.register_error` is also valid. The standard names
Nick Coghlanb9fdb7a2015-01-07 00:22:00 +10001196 include:
Andrew Kuchlingc7b6c502013-06-16 12:58:48 -04001197
1198 * ``'strict'`` to raise a :exc:`ValueError` exception if there is
1199 an encoding error. The default value of ``None`` has the same
1200 effect.
1201
1202 * ``'ignore'`` ignores errors. Note that ignoring encoding errors
1203 can lead to data loss.
1204
1205 * ``'replace'`` causes a replacement marker (such as ``'?'``) to be inserted
1206 where there is malformed data.
1207
Miss Islington (bot)c79aa422021-08-09 07:35:11 -07001208 * ``'surrogateescape'`` will represent any incorrect bytes as low
1209 surrogate code units ranging from U+DC80 to U+DCFF.
1210 These surrogate code units will then be turned back into
Andrew Kuchlingc7b6c502013-06-16 12:58:48 -04001211 the same bytes when the ``surrogateescape`` error handler is used
1212 when writing data. This is useful for processing files in an
1213 unknown encoding.
1214
1215 * ``'xmlcharrefreplace'`` is only supported when writing to a file.
1216 Characters not supported by the encoding are replaced with the
1217 appropriate XML character reference ``&#nnn;``.
1218
Serhiy Storchaka07985ef2015-01-25 22:56:57 +02001219 * ``'backslashreplace'`` replaces malformed data by Python's backslashed
1220 escape sequences.
Mark Summerfieldecff60e2007-12-14 10:07:44 +00001221
Serhiy Storchaka166ebc42014-11-25 13:57:17 +02001222 * ``'namereplace'`` (also only supported when writing)
1223 replaces unsupported characters with ``\N{...}`` escape sequences.
1224
R David Murray1b00f252012-08-15 10:43:58 -04001225 .. index::
1226 single: universal newlines; open() built-in function
1227
Nick Coghlan3171df32019-01-28 02:21:11 +10001228 .. _open-newline-parameter:
1229
R David Murray1b00f252012-08-15 10:43:58 -04001230 *newline* controls how :term:`universal newlines` mode works (it only
R David Murrayee0a9452012-08-15 11:05:36 -04001231 applies to text mode). It can be ``None``, ``''``, ``'\n'``, ``'\r'``, and
1232 ``'\r\n'``. It works as follows:
Mark Summerfieldecff60e2007-12-14 10:07:44 +00001233
Georg Brandl296d1be2012-08-14 09:39:07 +02001234 * When reading input from the stream, if *newline* is ``None``, universal
1235 newlines mode is enabled. Lines in the input can end in ``'\n'``,
1236 ``'\r'``, or ``'\r\n'``, and these are translated into ``'\n'`` before
R David Murray1b00f252012-08-15 10:43:58 -04001237 being returned to the caller. If it is ``''``, universal newlines mode is
Georg Brandl296d1be2012-08-14 09:39:07 +02001238 enabled, but line endings are returned to the caller untranslated. If it
1239 has any of the other legal values, input lines are only terminated by the
1240 given string, and the line ending is returned to the caller untranslated.
Benjamin Petersondd219122008-04-11 21:17:32 +00001241
Georg Brandl296d1be2012-08-14 09:39:07 +02001242 * When writing output to the stream, if *newline* is ``None``, any ``'\n'``
1243 characters written are translated to the system default line separator,
1244 :data:`os.linesep`. If *newline* is ``''`` or ``'\n'``, no translation
1245 takes place. If *newline* is any of the other legal values, any ``'\n'``
1246 characters written are translated to the given string.
Benjamin Petersondd219122008-04-11 21:17:32 +00001247
Benjamin Peterson8cad9c72009-03-23 02:38:01 +00001248 If *closefd* is ``False`` and a file descriptor rather than a filename was
1249 given, the underlying file descriptor will be kept open when the file is
Miss Islington (bot)2d049202021-07-19 09:38:56 -07001250 closed. If a filename is given *closefd* must be ``True`` (the default);
1251 otherwise, an error will be raised.
Benjamin Peterson8cad9c72009-03-23 02:38:01 +00001252
Ross Lagerwall59142db2011-10-31 20:34:46 +02001253 A custom opener can be used by passing a callable as *opener*. The underlying
1254 file descriptor for the file object is then obtained by calling *opener* with
1255 (*file*, *flags*). *opener* must return an open file descriptor (passing
1256 :mod:`os.open` as *opener* results in functionality similar to passing
1257 ``None``).
1258
Victor Stinnerdaf45552013-08-28 00:53:59 +02001259 The newly created file is :ref:`non-inheritable <fd_inheritance>`.
1260
Éric Araujo5bd92702012-11-22 00:13:49 -05001261 The following example uses the :ref:`dir_fd <dir_fd>` parameter of the
Éric Araujo8f423c92012-11-03 17:06:52 -04001262 :func:`os.open` function to open a file relative to a given directory::
1263
1264 >>> import os
Éric Araujo5bd92702012-11-22 00:13:49 -05001265 >>> dir_fd = os.open('somedir', os.O_RDONLY)
1266 >>> def opener(path, flags):
1267 ... return os.open(path, flags, dir_fd=dir_fd)
Éric Araujo8f423c92012-11-03 17:06:52 -04001268 ...
Éric Araujo8f423c92012-11-03 17:06:52 -04001269 >>> with open('spamspam.txt', 'w', opener=opener) as f:
1270 ... print('This will be written to somedir/spamspam.txt', file=f)
1271 ...
Éric Araujo309b0432012-11-03 17:39:45 -04001272 >>> os.close(dir_fd) # don't leak a file descriptor
Éric Araujo8f423c92012-11-03 17:06:52 -04001273
R David Murray9f0c9402012-08-17 20:33:54 -04001274 The type of :term:`file object` returned by the :func:`open` function
R David Murray433ef3b2012-08-17 20:39:21 -04001275 depends on the mode. When :func:`open` is used to open a file in a text
1276 mode (``'w'``, ``'r'``, ``'wt'``, ``'rt'``, etc.), it returns a subclass of
Benjamin Peterson6b4fa772010-08-30 13:19:53 +00001277 :class:`io.TextIOBase` (specifically :class:`io.TextIOWrapper`). When used
1278 to open a file in a binary mode with buffering, the returned class is a
1279 subclass of :class:`io.BufferedIOBase`. The exact class varies: in read
Martin Panter7462b6492015-11-02 03:37:02 +00001280 binary mode, it returns an :class:`io.BufferedReader`; in write binary and
1281 append binary modes, it returns an :class:`io.BufferedWriter`, and in
1282 read/write mode, it returns an :class:`io.BufferedRandom`. When buffering is
Benjamin Peterson6b4fa772010-08-30 13:19:53 +00001283 disabled, the raw stream, a subclass of :class:`io.RawIOBase`,
1284 :class:`io.FileIO`, is returned.
Georg Brandl116aa622007-08-15 14:28:22 +00001285
1286 .. index::
1287 single: line-buffered I/O
1288 single: unbuffered I/O
1289 single: buffer size, I/O
1290 single: I/O control; buffering
Skip Montanaro4d8c1932007-09-23 21:13:45 +00001291 single: binary mode
1292 single: text mode
1293 module: sys
Georg Brandl116aa622007-08-15 14:28:22 +00001294
Miss Islington (bot)2d049202021-07-19 09:38:56 -07001295 See also the file handling modules, such as :mod:`fileinput`, :mod:`io`
Benjamin Peterson8cad9c72009-03-23 02:38:01 +00001296 (where :func:`open` is declared), :mod:`os`, :mod:`os.path`, :mod:`tempfile`,
1297 and :mod:`shutil`.
Georg Brandl116aa622007-08-15 14:28:22 +00001298
Steve Dower44f91c32019-06-27 10:47:59 -07001299 .. audit-event:: open file,mode,flags open
Steve Dowerb82e17e2019-05-23 08:45:22 -07001300
1301 The ``mode`` and ``flags`` arguments may have been modified or inferred from
1302 the original call.
1303
Steve Dower39294992016-08-30 21:22:36 -07001304 .. versionchanged::
1305 3.3
Antoine Pitrou62ab10a02011-10-12 20:10:51 +02001306
Steve Dower39294992016-08-30 21:22:36 -07001307 * The *opener* parameter was added.
1308 * The ``'x'`` mode was added.
1309 * :exc:`IOError` used to be raised, it is now an alias of :exc:`OSError`.
1310 * :exc:`FileExistsError` is now raised if the file opened in exclusive
NAKAMURA Osamu29540cd2017-03-25 11:55:08 +09001311 creation mode (``'x'``) already exists.
Steve Dower39294992016-08-30 21:22:36 -07001312
1313 .. versionchanged::
1314 3.4
1315
1316 * The file is now non-inheritable.
Victor Stinnerdaf45552013-08-28 00:53:59 +02001317
Victor Stinner942f7a22020-03-04 18:50:22 +01001318 .. deprecated-removed:: 3.4 3.10
1319
1320 The ``'U'`` mode.
1321
Steve Dower39294992016-08-30 21:22:36 -07001322 .. versionchanged::
1323 3.5
Victor Stinnera766ddf2015-03-26 23:50:57 +01001324
Steve Dower39294992016-08-30 21:22:36 -07001325 * If the system call is interrupted and the signal handler does not raise an
1326 exception, the function now retries the system call instead of raising an
1327 :exc:`InterruptedError` exception (see :pep:`475` for the rationale).
1328 * The ``'namereplace'`` error handler was added.
Georg Brandlf6945182008-02-01 11:56:49 +00001329
Steve Dower39294992016-08-30 21:22:36 -07001330 .. versionchanged::
1331 3.6
1332
1333 * Support added to accept objects implementing :class:`os.PathLike`.
1334 * On Windows, opening a console buffer may return a subclass of
1335 :class:`io.RawIOBase` other than :class:`io.FileIO`.
Brett Cannonb08388d2016-06-09 15:58:06 -07001336
Georg Brandl116aa622007-08-15 14:28:22 +00001337.. function:: ord(c)
1338
Ezio Melottic99c8582011-10-25 09:32:34 +03001339 Given a string representing one Unicode character, return an integer
Nick Coghlaneed67192014-08-17 14:07:53 +10001340 representing the Unicode code point of that character. For example,
Terry Jan Reedy063d48d2016-03-20 21:18:40 -04001341 ``ord('a')`` returns the integer ``97`` and ``ord('€')`` (Euro sign)
1342 returns ``8364``. This is the inverse of :func:`chr`.
Georg Brandlf6945182008-02-01 11:56:49 +00001343
Georg Brandl116aa622007-08-15 14:28:22 +00001344
Ammar Askar87d6cd32019-09-21 00:28:49 -04001345.. function:: pow(base, exp[, mod])
Georg Brandl116aa622007-08-15 14:28:22 +00001346
Ammar Askar87d6cd32019-09-21 00:28:49 -04001347 Return *base* to the power *exp*; if *mod* is present, return *base* to the
1348 power *exp*, modulo *mod* (computed more efficiently than
1349 ``pow(base, exp) % mod``). The two-argument form ``pow(base, exp)`` is
1350 equivalent to using the power operator: ``base**exp``.
Georg Brandl116aa622007-08-15 14:28:22 +00001351
Georg Brandle06de8b2008-05-05 21:42:51 +00001352 The arguments must have numeric types. With mixed operand types, the
1353 coercion rules for binary arithmetic operators apply. For :class:`int`
1354 operands, the result has the same type as the operands (after coercion)
1355 unless the second argument is negative; in that case, all arguments are
Łukasz Langa8f9d3982021-09-28 23:09:58 +02001356 converted to float and a float result is delivered. For example, ``pow(10, 2)``
Miss Islington (bot)9b3cda52021-10-21 15:08:20 -07001357 returns ``100``, but ``pow(10, -2)`` returns ``0.01``. For a negative base of
1358 type :class:`int` or :class:`float` and a non-integral exponent, a complex
1359 result is delivered. For example, ``pow(-9, 0.5)`` returns a value close
1360 to ``3j``.
Mark Dickinsonc5299672019-06-02 10:24:06 +01001361
Ammar Askar87d6cd32019-09-21 00:28:49 -04001362 For :class:`int` operands *base* and *exp*, if *mod* is present, *mod* must
1363 also be of integer type and *mod* must be nonzero. If *mod* is present and
1364 *exp* is negative, *base* must be relatively prime to *mod*. In that case,
1365 ``pow(inv_base, -exp, mod)`` is returned, where *inv_base* is an inverse to
1366 *base* modulo *mod*.
Mark Dickinsonc5299672019-06-02 10:24:06 +01001367
1368 Here's an example of computing an inverse for ``38`` modulo ``97``::
1369
Ammar Askar87d6cd32019-09-21 00:28:49 -04001370 >>> pow(38, -1, mod=97)
Mark Dickinsonc5299672019-06-02 10:24:06 +01001371 23
1372 >>> 23 * 38 % 97 == 1
1373 True
1374
1375 .. versionchanged:: 3.8
1376 For :class:`int` operands, the three-argument form of ``pow`` now allows
1377 the second argument to be negative, permitting computation of modular
1378 inverses.
Georg Brandl116aa622007-08-15 14:28:22 +00001379
Mark Dickinsonc691f202020-03-19 18:12:59 +00001380 .. versionchanged:: 3.8
Ammar Askar87d6cd32019-09-21 00:28:49 -04001381 Allow keyword arguments. Formerly, only positional arguments were
1382 supported.
1383
Georg Brandl116aa622007-08-15 14:28:22 +00001384
Julien Palard5c1f15b2021-01-25 15:46:06 +01001385.. function:: print(*objects, sep=' ', end='\\n', file=sys.stdout, flush=False)
Georg Brandlf6945182008-02-01 11:56:49 +00001386
Terry Jan Reedy1895f2b2014-10-01 15:37:42 -04001387 Print *objects* to the text stream *file*, separated by *sep* and followed
Miss Islington (bot)2d049202021-07-19 09:38:56 -07001388 by *end*. *sep*, *end*, *file*, and *flush*, if present, must be given as keyword
Georg Brandlf6945182008-02-01 11:56:49 +00001389 arguments.
1390
1391 All non-keyword arguments are converted to strings like :func:`str` does and
1392 written to the stream, separated by *sep* and followed by *end*. Both *sep*
1393 and *end* must be strings; they can also be ``None``, which means to use the
Ezio Melottie0add762012-09-14 06:32:35 +03001394 default values. If no *objects* are given, :func:`print` will just write
Georg Brandlf6945182008-02-01 11:56:49 +00001395 *end*.
1396
1397 The *file* argument must be an object with a ``write(string)`` method; if it
Terry Jan Reedy1895f2b2014-10-01 15:37:42 -04001398 is not present or ``None``, :data:`sys.stdout` will be used. Since printed
1399 arguments are converted to text strings, :func:`print` cannot be used with
1400 binary mode file objects. For these, use ``file.write(...)`` instead.
1401
Miss Islington (bot)2d049202021-07-19 09:38:56 -07001402 Whether the output is buffered is usually determined by *file*, but if the
Terry Jan Reedy1895f2b2014-10-01 15:37:42 -04001403 *flush* keyword argument is true, the stream is forcibly flushed.
Georg Brandlbc3b6822012-01-13 19:41:25 +01001404
1405 .. versionchanged:: 3.3
1406 Added the *flush* keyword argument.
Georg Brandlf6945182008-02-01 11:56:49 +00001407
1408
Georg Brandleb7e8f62014-10-06 13:54:36 +02001409.. class:: property(fget=None, fset=None, fdel=None, doc=None)
Georg Brandl116aa622007-08-15 14:28:22 +00001410
Georg Brandl85eb8c12007-08-31 16:33:38 +00001411 Return a property attribute.
Georg Brandl116aa622007-08-15 14:28:22 +00001412
Raymond Hettingerac191ce2014-08-10 10:41:25 -07001413 *fget* is a function for getting an attribute value. *fset* is a function
1414 for setting an attribute value. *fdel* is a function for deleting an attribute
1415 value. And *doc* creates a docstring for the attribute.
1416
1417 A typical use is to define a managed attribute ``x``::
Georg Brandl116aa622007-08-15 14:28:22 +00001418
Éric Araujo28053fb2010-11-22 03:09:19 +00001419 class C:
Alexandre Vassalotti5f8ced22008-05-16 00:03:33 +00001420 def __init__(self):
1421 self._x = None
1422
1423 def getx(self):
1424 return self._x
Raymond Hettingerac191ce2014-08-10 10:41:25 -07001425
Alexandre Vassalotti5f8ced22008-05-16 00:03:33 +00001426 def setx(self, value):
1427 self._x = value
Raymond Hettingerac191ce2014-08-10 10:41:25 -07001428
Alexandre Vassalotti5f8ced22008-05-16 00:03:33 +00001429 def delx(self):
1430 del self._x
Raymond Hettingerac191ce2014-08-10 10:41:25 -07001431
Georg Brandl116aa622007-08-15 14:28:22 +00001432 x = property(getx, setx, delx, "I'm the 'x' property.")
1433
Raymond Hettingerac191ce2014-08-10 10:41:25 -07001434 If *c* is an instance of *C*, ``c.x`` will invoke the getter,
Miss Islington (bot)2d049202021-07-19 09:38:56 -07001435 ``c.x = value`` will invoke the setter, and ``del c.x`` the deleter.
Georg Brandl7528b9b2010-08-02 19:23:34 +00001436
Georg Brandl116aa622007-08-15 14:28:22 +00001437 If given, *doc* will be the docstring of the property attribute. Otherwise, the
1438 property will copy *fget*'s docstring (if it exists). This makes it possible to
Christian Heimesd8654cf2007-12-02 15:22:16 +00001439 create read-only properties easily using :func:`property` as a :term:`decorator`::
Georg Brandl116aa622007-08-15 14:28:22 +00001440
Éric Araujo28053fb2010-11-22 03:09:19 +00001441 class Parrot:
Georg Brandl116aa622007-08-15 14:28:22 +00001442 def __init__(self):
1443 self._voltage = 100000
1444
1445 @property
1446 def voltage(self):
1447 """Get the current voltage."""
1448 return self._voltage
1449
Raymond Hettingerac191ce2014-08-10 10:41:25 -07001450 The ``@property`` decorator turns the :meth:`voltage` method into a "getter"
1451 for a read-only attribute with the same name, and it sets the docstring for
1452 *voltage* to "Get the current voltage."
Alexandre Vassalotti5f8ced22008-05-16 00:03:33 +00001453
Serhiy Storchaka0d196ed2013-10-09 14:02:31 +03001454 A property object has :attr:`~property.getter`, :attr:`~property.setter`,
1455 and :attr:`~property.deleter` methods usable as decorators that create a
1456 copy of the property with the corresponding accessor function set to the
1457 decorated function. This is best explained with an example::
Alexandre Vassalotti5f8ced22008-05-16 00:03:33 +00001458
Éric Araujo28053fb2010-11-22 03:09:19 +00001459 class C:
Benjamin Peterson206e3072008-10-19 14:07:49 +00001460 def __init__(self):
1461 self._x = None
Alexandre Vassalotti5f8ced22008-05-16 00:03:33 +00001462
1463 @property
1464 def x(self):
1465 """I'm the 'x' property."""
1466 return self._x
1467
1468 @x.setter
1469 def x(self, value):
1470 self._x = value
1471
1472 @x.deleter
1473 def x(self):
1474 del self._x
1475
1476 This code is exactly equivalent to the first example. Be sure to give the
1477 additional functions the same name as the original property (``x`` in this
1478 case.)
1479
Raymond Hettingerac191ce2014-08-10 10:41:25 -07001480 The returned property object also has the attributes ``fget``, ``fset``, and
Alexandre Vassalotti5f8ced22008-05-16 00:03:33 +00001481 ``fdel`` corresponding to the constructor arguments.
Georg Brandl116aa622007-08-15 14:28:22 +00001482
Raymond Hettinger29655df2015-05-15 16:17:05 -07001483 .. versionchanged:: 3.5
1484 The docstrings of property objects are now writeable.
1485
Georg Brandl116aa622007-08-15 14:28:22 +00001486
Nick Coghlan83c0ae52012-08-21 17:42:52 +10001487.. _func-range:
Terry Jan Reedyee9ff052019-12-30 17:16:43 -05001488.. class:: range(stop)
Ezio Melottie0add762012-09-14 06:32:35 +03001489 range(start, stop[, step])
Nick Coghlan83c0ae52012-08-21 17:42:52 +10001490 :noindex:
Georg Brandl116aa622007-08-15 14:28:22 +00001491
Nick Coghlan83c0ae52012-08-21 17:42:52 +10001492 Rather than being a function, :class:`range` is actually an immutable
Chris Jerdonek006d9072012-10-12 20:28:26 -07001493 sequence type, as documented in :ref:`typesseq-range` and :ref:`typesseq`.
Benjamin Peterson878ce382011-11-05 15:17:52 -04001494
Georg Brandl116aa622007-08-15 14:28:22 +00001495
1496.. function:: repr(object)
1497
Georg Brandl68ee3a52008-03-25 07:21:32 +00001498 Return a string containing a printable representation of an object. For many
1499 types, this function makes an attempt to return a string that would yield an
Miss Islington (bot)2d049202021-07-19 09:38:56 -07001500 object with the same value when passed to :func:`eval`; otherwise, the
Georg Brandl68ee3a52008-03-25 07:21:32 +00001501 representation is a string enclosed in angle brackets that contains the name
1502 of the type of the object together with additional information often
1503 including the name and address of the object. A class can control what this
1504 function returns for its instances by defining a :meth:`__repr__` method.
Georg Brandl116aa622007-08-15 14:28:22 +00001505
1506
1507.. function:: reversed(seq)
1508
Christian Heimes7f044312008-01-06 17:05:40 +00001509 Return a reverse :term:`iterator`. *seq* must be an object which has
1510 a :meth:`__reversed__` method or supports the sequence protocol (the
1511 :meth:`__len__` method and the :meth:`__getitem__` method with integer
1512 arguments starting at ``0``).
Georg Brandl116aa622007-08-15 14:28:22 +00001513
Georg Brandl116aa622007-08-15 14:28:22 +00001514
Mark Dickinson4e12ad12012-09-20 20:51:14 +01001515.. function:: round(number[, ndigits])
Georg Brandl116aa622007-08-15 14:28:22 +00001516
csabella85deefc2017-03-29 17:14:06 -04001517 Return *number* rounded to *ndigits* precision after the decimal
1518 point. If *ndigits* is omitted or is ``None``, it returns the
1519 nearest integer to its input.
Georg Brandl809ddaa2008-07-01 20:39:59 +00001520
1521 For the built-in types supporting :func:`round`, values are rounded to the
Mark Dickinson4e12ad12012-09-20 20:51:14 +01001522 closest multiple of 10 to the power minus *ndigits*; if two multiples are
1523 equally close, rounding is done toward the even choice (so, for example,
1524 both ``round(0.5)`` and ``round(-0.5)`` are ``0``, and ``round(1.5)`` is
Gerrit Holl6003db72017-03-27 23:15:20 +01001525 ``2``). Any integer value is valid for *ndigits* (positive, zero, or
Lisa Roach900c48d2018-05-20 11:00:18 -04001526 negative). The return value is an integer if *ndigits* is omitted or
1527 ``None``.
Miss Islington (bot)2d049202021-07-19 09:38:56 -07001528 Otherwise, the return value has the same type as *number*.
Christian Heimes072c0f12008-01-03 23:01:04 +00001529
Lisa Roach900c48d2018-05-20 11:00:18 -04001530 For a general Python object ``number``, ``round`` delegates to
1531 ``number.__round__``.
csabella85deefc2017-03-29 17:14:06 -04001532
Mark Dickinsonc4fbcdc2010-07-30 13:13:02 +00001533 .. note::
1534
1535 The behavior of :func:`round` for floats can be surprising: for example,
1536 ``round(2.675, 2)`` gives ``2.67`` instead of the expected ``2.68``.
1537 This is not a bug: it's a result of the fact that most decimal fractions
1538 can't be represented exactly as a float. See :ref:`tut-fp-issues` for
1539 more information.
Georg Brandl116aa622007-08-15 14:28:22 +00001540
Éric Araujo9edd9f02011-09-01 23:08:55 +02001541
1542.. _func-set:
Georg Brandleb7e8f62014-10-06 13:54:36 +02001543.. class:: set([iterable])
Georg Brandl116aa622007-08-15 14:28:22 +00001544 :noindex:
1545
Chris Jerdonekdf3abec2012-11-09 18:57:32 -08001546 Return a new :class:`set` object, optionally with elements taken from
1547 *iterable*. ``set`` is a built-in class. See :class:`set` and
1548 :ref:`types-set` for documentation about this class.
1549
1550 For other containers see the built-in :class:`frozenset`, :class:`list`,
1551 :class:`tuple`, and :class:`dict` classes, as well as the :mod:`collections`
1552 module.
Georg Brandl116aa622007-08-15 14:28:22 +00001553
Georg Brandl116aa622007-08-15 14:28:22 +00001554
1555.. function:: setattr(object, name, value)
1556
1557 This is the counterpart of :func:`getattr`. The arguments are an object, a
Miss Islington (bot)2d049202021-07-19 09:38:56 -07001558 string, and an arbitrary value. The string may name an existing attribute or a
Georg Brandl116aa622007-08-15 14:28:22 +00001559 new attribute. The function assigns the value to the attribute, provided the
1560 object allows it. For example, ``setattr(x, 'foobar', 123)`` is equivalent to
1561 ``x.foobar = 123``.
1562
Ken Jin2edaf6a2021-02-03 05:06:57 +08001563 .. note::
1564
1565 Since :ref:`private name mangling <private-name-mangling>` happens at
1566 compilation time, one must manually mangle a private attribute's
1567 (attributes with two leading underscores) name in order to set it with
1568 :func:`setattr`.
1569
Georg Brandl116aa622007-08-15 14:28:22 +00001570
Georg Brandleb7e8f62014-10-06 13:54:36 +02001571.. class:: slice(stop)
1572 slice(start, stop[, step])
Georg Brandl116aa622007-08-15 14:28:22 +00001573
Christian Heimesd8654cf2007-12-02 15:22:16 +00001574 Return a :term:`slice` object representing the set of indices specified by
Georg Brandl116aa622007-08-15 14:28:22 +00001575 ``range(start, stop, step)``. The *start* and *step* arguments default to
Serhiy Storchaka0d196ed2013-10-09 14:02:31 +03001576 ``None``. Slice objects have read-only data attributes :attr:`~slice.start`,
Miss Islington (bot)2d049202021-07-19 09:38:56 -07001577 :attr:`~slice.stop`, and :attr:`~slice.step` which merely return the argument
Serhiy Storchaka0d196ed2013-10-09 14:02:31 +03001578 values (or their default). They have no other explicit functionality;
Miss Islington (bot)2d049202021-07-19 09:38:56 -07001579 however, they are used by NumPy and other third-party packages.
Serhiy Storchaka0d196ed2013-10-09 14:02:31 +03001580 Slice objects are also generated when extended indexing syntax is used. For
1581 example: ``a[start:stop:step]`` or ``a[start:stop, i]``. See
1582 :func:`itertools.islice` for an alternate version that returns an iterator.
Georg Brandl116aa622007-08-15 14:28:22 +00001583
1584
Miss Islington (bot)c8044772021-12-15 04:59:01 -08001585.. function:: sorted(iterable, /, *, key=None, reverse=False)
Georg Brandl116aa622007-08-15 14:28:22 +00001586
1587 Return a new sorted list from the items in *iterable*.
1588
Raymond Hettinger51b9c242008-02-14 13:52:24 +00001589 Has two optional arguments which must be specified as keyword arguments.
Georg Brandl116aa622007-08-15 14:28:22 +00001590
Georg Brandl116aa622007-08-15 14:28:22 +00001591 *key* specifies a function of one argument that is used to extract a comparison
Wolfgang Maier6bdb6f72018-10-15 21:06:53 +02001592 key from each element in *iterable* (for example, ``key=str.lower``). The
1593 default value is ``None`` (compare the elements directly).
Georg Brandl116aa622007-08-15 14:28:22 +00001594
1595 *reverse* is a boolean value. If set to ``True``, then the list elements are
1596 sorted as if each comparison were reversed.
1597
Benjamin Peterson7ac98ae2010-08-17 17:52:02 +00001598 Use :func:`functools.cmp_to_key` to convert an old-style *cmp* function to a
1599 *key* function.
Georg Brandl116aa622007-08-15 14:28:22 +00001600
Ezio Melotti9b1e92f2014-10-28 12:57:11 +01001601 The built-in :func:`sorted` function is guaranteed to be stable. A sort is
1602 stable if it guarantees not to change the relative order of elements that
1603 compare equal --- this is helpful for sorting in multiple passes (for
1604 example, sort by department, then by salary grade).
1605
Łukasz Langa0d41bf12021-09-21 22:32:09 +02001606 The sort algorithm uses only ``<`` comparisons between items. While
1607 defining an :meth:`~object.__lt__` method will suffice for sorting,
1608 :PEP:`8` recommends that all six :ref:`rich comparisons
1609 <comparisons>` be implemented. This will help avoid bugs when using
1610 the same data with other ordering tools such as :func:`max` that rely
1611 on a different underlying method. Implementing all six comparisons
1612 also helps avoid confusion for mixed type comparisons which can call
1613 reflected the :meth:`~object.__gt__` method.
1614
Senthil Kumarand03d1d42016-01-01 23:25:58 -08001615 For sorting examples and a brief sorting tutorial, see :ref:`sortinghowto`.
Raymond Hettinger46fca072010-04-02 00:25:45 +00001616
Daisuke Miyakawa0e61e672017-10-12 23:39:43 +09001617.. decorator:: staticmethod
Georg Brandl116aa622007-08-15 14:28:22 +00001618
Daisuke Miyakawa0e61e672017-10-12 23:39:43 +09001619 Transform a method into a static method.
Georg Brandl116aa622007-08-15 14:28:22 +00001620
1621 A static method does not receive an implicit first argument. To declare a static
1622 method, use this idiom::
1623
1624 class C:
1625 @staticmethod
1626 def f(arg1, arg2, ...): ...
1627
Andre Delfino548cb602019-03-25 19:53:43 -03001628 The ``@staticmethod`` form is a function :term:`decorator` -- see
1629 :ref:`function` for details.
Georg Brandl116aa622007-08-15 14:28:22 +00001630
Victor Stinner553ee272021-04-12 00:21:22 +02001631 A static method can be called either on the class (such as ``C.f()``) or on
1632 an instance (such as ``C().f()``). Moreover, they can be called as regular
1633 functions (such as ``f()``).
Georg Brandl116aa622007-08-15 14:28:22 +00001634
Miss Islington (bot)2d049202021-07-19 09:38:56 -07001635 Static methods in Python are similar to those found in Java or C++. Also, see
Raymond Hettinger90289282011-06-01 16:17:23 -07001636 :func:`classmethod` for a variant that is useful for creating alternate class
1637 constructors.
Georg Brandl116aa622007-08-15 14:28:22 +00001638
Éric Araujo03b95372017-10-12 12:28:55 -04001639 Like all decorators, it is also possible to call ``staticmethod`` as
1640 a regular function and do something with its result. This is needed
1641 in some cases where you need a reference to a function from a class
1642 body and you want to avoid the automatic transformation to instance
cocoatomo2a3260b2018-01-29 17:30:48 +09001643 method. For these cases, use this idiom::
Éric Araujo03b95372017-10-12 12:28:55 -04001644
Victor Stinner553ee272021-04-12 00:21:22 +02001645 def regular_function():
1646 ...
1647
Éric Araujo03b95372017-10-12 12:28:55 -04001648 class C:
Victor Stinner553ee272021-04-12 00:21:22 +02001649 method = staticmethod(regular_function)
Éric Araujo03b95372017-10-12 12:28:55 -04001650
Andre Delfino548cb602019-03-25 19:53:43 -03001651 For more information on static methods, see :ref:`types`.
Georg Brandl116aa622007-08-15 14:28:22 +00001652
Victor Stinner507a5742021-04-09 17:51:22 +02001653 .. versionchanged:: 3.10
1654 Static methods now inherit the method attributes (``__module__``,
Victor Stinner553ee272021-04-12 00:21:22 +02001655 ``__name__``, ``__qualname__``, ``__doc__`` and ``__annotations__``),
1656 have a new ``__wrapped__`` attribute, and are now callable as regular
1657 functions.
Victor Stinner507a5742021-04-09 17:51:22 +02001658
Chris Jerdonek5fae0e52012-11-20 17:45:51 -08001659
Éric Araujo03b95372017-10-12 12:28:55 -04001660.. index::
1661 single: string; str() (built-in function)
Georg Brandl116aa622007-08-15 14:28:22 +00001662
Nick Coghlan83c0ae52012-08-21 17:42:52 +10001663.. _func-str:
Georg Brandleb7e8f62014-10-06 13:54:36 +02001664.. class:: str(object='')
1665 str(object=b'', encoding='utf-8', errors='strict')
Chris Jerdonekbb4e9412012-11-28 01:38:40 -08001666 :noindex:
Georg Brandl116aa622007-08-15 14:28:22 +00001667
Chris Jerdonekbb4e9412012-11-28 01:38:40 -08001668 Return a :class:`str` version of *object*. See :func:`str` for details.
Georg Brandl48310cd2009-01-03 21:18:54 +00001669
Chris Jerdonekbb4e9412012-11-28 01:38:40 -08001670 ``str`` is the built-in string :term:`class`. For general information
1671 about strings, see :ref:`textseq`.
Georg Brandl116aa622007-08-15 14:28:22 +00001672
1673
Pablo Galindoc4c421d2019-06-06 00:11:46 +01001674.. function:: sum(iterable, /, start=0)
Georg Brandl116aa622007-08-15 14:28:22 +00001675
1676 Sums *start* and the items of an *iterable* from left to right and returns the
Pablo Galindoc4c421d2019-06-06 00:11:46 +01001677 total. The *iterable*'s items are normally numbers, and the start value is not
1678 allowed to be a string.
Georg Brandl116aa622007-08-15 14:28:22 +00001679
Éric Araujo8f9626b2010-11-06 06:30:16 +00001680 For some use cases, there are good alternatives to :func:`sum`.
Raymond Hettingerb3737992010-10-31 21:23:24 +00001681 The preferred, fast way to concatenate a sequence of strings is by calling
1682 ``''.join(sequence)``. To add floating point values with extended precision,
1683 see :func:`math.fsum`\. To concatenate a series of iterables, consider using
1684 :func:`itertools.chain`.
Georg Brandl116aa622007-08-15 14:28:22 +00001685
Raymond Hettinger9dfa0fe2018-09-12 10:54:06 -07001686 .. versionchanged:: 3.8
1687 The *start* parameter can be specified as a keyword argument.
1688
Géry Ogamd35eef32021-04-20 20:58:02 +02001689.. class:: super([type[, object-or-type]])
Georg Brandl116aa622007-08-15 14:28:22 +00001690
Raymond Hettinger4d9a8232009-02-24 23:30:43 +00001691 Return a proxy object that delegates method calls to a parent or sibling
1692 class of *type*. This is useful for accessing inherited methods that have
Raymond Hettingercd81f052019-08-29 00:44:02 -07001693 been overridden in a class.
Raymond Hettinger4d9a8232009-02-24 23:30:43 +00001694
Raymond Hettingercd81f052019-08-29 00:44:02 -07001695 The *object-or-type* determines the :term:`method resolution order`
1696 to be searched. The search starts from the class right after the
1697 *type*.
1698
1699 For example, if :attr:`~class.__mro__` of *object-or-type* is
1700 ``D -> B -> C -> A -> object`` and the value of *type* is ``B``,
1701 then :func:`super` searches ``C -> A -> object``.
1702
1703 The :attr:`~class.__mro__` attribute of the *object-or-type* lists the method
Serhiy Storchaka0d196ed2013-10-09 14:02:31 +03001704 resolution search order used by both :func:`getattr` and :func:`super`. The
1705 attribute is dynamic and can change whenever the inheritance hierarchy is
1706 updated.
Benjamin Peterson3e4f0552008-09-02 00:31:15 +00001707
Raymond Hettinger79d04342009-02-25 00:32:51 +00001708 If the second argument is omitted, the super object returned is unbound. If
Benjamin Peterson9bc93512008-09-22 22:10:59 +00001709 the second argument is an object, ``isinstance(obj, type)`` must be true. If
Benjamin Petersond75fcb42009-02-19 04:22:03 +00001710 the second argument is a type, ``issubclass(type2, type)`` must be true (this
1711 is useful for classmethods).
Georg Brandl116aa622007-08-15 14:28:22 +00001712
Raymond Hettinger0a68b012009-02-25 00:58:47 +00001713 There are two typical use cases for *super*. In a class hierarchy with
1714 single inheritance, *super* can be used to refer to parent classes without
Benjamin Peterson9bc93512008-09-22 22:10:59 +00001715 naming them explicitly, thus making the code more maintainable. This use
Raymond Hettinger0a68b012009-02-25 00:58:47 +00001716 closely parallels the use of *super* in other programming languages.
Georg Brandl48310cd2009-01-03 21:18:54 +00001717
Raymond Hettinger4d9a8232009-02-24 23:30:43 +00001718 The second use case is to support cooperative multiple inheritance in a
Georg Brandl48310cd2009-01-03 21:18:54 +00001719 dynamic execution environment. This use case is unique to Python and is
1720 not found in statically compiled languages or languages that only support
Raymond Hettingerd1258452009-02-26 00:27:18 +00001721 single inheritance. This makes it possible to implement "diamond diagrams"
Benjamin Peterson9bc93512008-09-22 22:10:59 +00001722 where multiple base classes implement the same method. Good design dictates
Andre Delfino69a733b2021-04-28 22:12:15 -03001723 that such implementations have the same calling signature in every case (because the
Raymond Hettinger4d9a8232009-02-24 23:30:43 +00001724 order of calls is determined at runtime, because that order adapts
1725 to changes in the class hierarchy, and because that order can include
1726 sibling classes that are unknown prior to runtime).
Benjamin Peterson9bc93512008-09-22 22:10:59 +00001727
1728 For both use cases, a typical superclass call looks like this::
Georg Brandl116aa622007-08-15 14:28:22 +00001729
1730 class C(B):
Mark Summerfield1041f742008-02-26 13:27:00 +00001731 def method(self, arg):
Georg Brandl036490d2009-05-17 13:00:36 +00001732 super().method(arg) # This does the same thing as:
1733 # super(C, self).method(arg)
Georg Brandl116aa622007-08-15 14:28:22 +00001734
Raymond Hettinger15ccc4f2019-09-25 08:13:19 -07001735 In addition to method lookups, :func:`super` also works for attribute
Géry Ogamd6727912019-11-21 03:10:19 +01001736 lookups. One possible use case for this is calling :term:`descriptors <descriptor>`
Raymond Hettinger15ccc4f2019-09-25 08:13:19 -07001737 in a parent or sibling class.
1738
Georg Brandl116aa622007-08-15 14:28:22 +00001739 Note that :func:`super` is implemented as part of the binding process for
Mark Summerfield1041f742008-02-26 13:27:00 +00001740 explicit dotted attribute lookups such as ``super().__getitem__(name)``.
Benjamin Peterson9bc93512008-09-22 22:10:59 +00001741 It does so by implementing its own :meth:`__getattribute__` method for searching
Raymond Hettinger4d9a8232009-02-24 23:30:43 +00001742 classes in a predictable order that supports cooperative multiple inheritance.
Georg Brandl116aa622007-08-15 14:28:22 +00001743 Accordingly, :func:`super` is undefined for implicit lookups using statements or
Raymond Hettinger518d8da2008-12-06 11:44:00 +00001744 operators such as ``super()[name]``.
1745
Nick Coghlan7fc570a2012-05-20 02:34:13 +10001746 Also note that, aside from the zero argument form, :func:`super` is not
1747 limited to use inside methods. The two argument form specifies the
1748 arguments exactly and makes the appropriate references. The zero
1749 argument form only works inside a class definition, as the compiler fills
1750 in the necessary details to correctly retrieve the class being defined,
1751 as well as accessing the current instance for ordinary methods.
Georg Brandl116aa622007-08-15 14:28:22 +00001752
Raymond Hettinger90289282011-06-01 16:17:23 -07001753 For practical suggestions on how to design cooperative classes using
1754 :func:`super`, see `guide to using super()
Georg Brandl5d941342016-02-26 19:37:12 +01001755 <https://rhettinger.wordpress.com/2011/05/26/super-considered-super/>`_.
Raymond Hettinger90289282011-06-01 16:17:23 -07001756
Georg Brandl116aa622007-08-15 14:28:22 +00001757
Nick Coghlan83c0ae52012-08-21 17:42:52 +10001758.. _func-tuple:
Terry Jan Reedyee9ff052019-12-30 17:16:43 -05001759.. class:: tuple([iterable])
Nick Coghlan83c0ae52012-08-21 17:42:52 +10001760 :noindex:
Georg Brandl116aa622007-08-15 14:28:22 +00001761
Nick Coghlan83c0ae52012-08-21 17:42:52 +10001762 Rather than being a function, :class:`tuple` is actually an immutable
Chris Jerdonek006d9072012-10-12 20:28:26 -07001763 sequence type, as documented in :ref:`typesseq-tuple` and :ref:`typesseq`.
Georg Brandl116aa622007-08-15 14:28:22 +00001764
1765
Georg Brandleb7e8f62014-10-06 13:54:36 +02001766.. class:: type(object)
Erik Soma72fcd142021-03-01 18:21:04 -05001767 type(name, bases, dict, **kwds)
Georg Brandl116aa622007-08-15 14:28:22 +00001768
1769 .. index:: object: type
1770
Ezio Melotti837cd062012-10-24 23:06:25 +03001771 With one argument, return the type of an *object*. The return value is a
Serhiy Storchaka0d196ed2013-10-09 14:02:31 +03001772 type object and generally the same object as returned by
1773 :attr:`object.__class__ <instance.__class__>`.
Georg Brandl116aa622007-08-15 14:28:22 +00001774
Georg Brandl85eb8c12007-08-31 16:33:38 +00001775 The :func:`isinstance` built-in function is recommended for testing the type
1776 of an object, because it takes subclasses into account.
1777
Georg Brandl116aa622007-08-15 14:28:22 +00001778
Ezio Melotti837cd062012-10-24 23:06:25 +03001779 With three arguments, return a new type object. This is essentially a
Борис Верховский644d5282021-01-22 00:47:23 -05001780 dynamic form of the :keyword:`class` statement. The *name* string is
1781 the class name and becomes the :attr:`~definition.__name__` attribute.
1782 The *bases* tuple contains the base classes and becomes the
1783 :attr:`~class.__bases__` attribute; if empty, :class:`object`, the
1784 ultimate base of all classes, is added. The *dict* dictionary contains
1785 attribute and method definitions for the class body; it may be copied
1786 or wrapped before becoming the :attr:`~object.__dict__` attribute.
1787 The following two statements create identical :class:`type` objects:
Georg Brandl116aa622007-08-15 14:28:22 +00001788
Éric Araujo28053fb2010-11-22 03:09:19 +00001789 >>> class X:
Georg Brandl116aa622007-08-15 14:28:22 +00001790 ... a = 1
Georg Brandl48310cd2009-01-03 21:18:54 +00001791 ...
Борис Верховский644d5282021-01-22 00:47:23 -05001792 >>> X = type('X', (), dict(a=1))
Georg Brandl116aa622007-08-15 14:28:22 +00001793
Chris Jerdonek006d9072012-10-12 20:28:26 -07001794 See also :ref:`bltin-type-objects`.
1795
Erik Soma72fcd142021-03-01 18:21:04 -05001796 Keyword arguments provided to the three argument form are passed to the
1797 appropriate metaclass machinery (usually :meth:`~object.__init_subclass__`)
1798 in the same way that keywords in a class
1799 definition (besides *metaclass*) would.
1800
1801 See also :ref:`class-customization`.
1802
Berker Peksag3f015a62016-08-19 11:04:07 +03001803 .. versionchanged:: 3.6
1804 Subclasses of :class:`type` which don't override ``type.__new__`` may no
1805 longer use the one-argument form to get the type of an object.
Georg Brandl116aa622007-08-15 14:28:22 +00001806
1807.. function:: vars([object])
1808
Serhiy Storchaka0d196ed2013-10-09 14:02:31 +03001809 Return the :attr:`~object.__dict__` attribute for a module, class, instance,
Martin Panterbae5d812016-06-18 03:57:31 +00001810 or any other object with a :attr:`~object.__dict__` attribute.
Benjamin Peterson4ac9ce42009-10-04 14:49:41 +00001811
Martin Panterbae5d812016-06-18 03:57:31 +00001812 Objects such as modules and instances have an updateable :attr:`~object.__dict__`
Raymond Hettingerd7100172013-06-02 10:03:05 -07001813 attribute; however, other objects may have write restrictions on their
Martin Panterbae5d812016-06-18 03:57:31 +00001814 :attr:`~object.__dict__` attributes (for example, classes use a
Berker Peksag37e87e62016-06-24 09:12:01 +03001815 :class:`types.MappingProxyType` to prevent direct dictionary updates).
Georg Brandl116aa622007-08-15 14:28:22 +00001816
Raymond Hettingerd7100172013-06-02 10:03:05 -07001817 Without an argument, :func:`vars` acts like :func:`locals`. Note, the
1818 locals dictionary is only useful for reads since updates to the locals
1819 dictionary are ignored.
1820
Andre Delfino802726a2020-08-21 19:29:34 -03001821 A :exc:`TypeError` exception is raised if an object is specified but
1822 it doesn't have a :attr:`~object.__dict__` attribute (for example, if
1823 its class defines the :attr:`~object.__slots__` attribute).
Georg Brandl116aa622007-08-15 14:28:22 +00001824
Ram Rachum59cf8532020-06-19 23:39:22 +03001825.. function:: zip(*iterables, strict=False)
Georg Brandl116aa622007-08-15 14:28:22 +00001826
Ram Rachum59cf8532020-06-19 23:39:22 +03001827 Iterate over several iterables in parallel, producing tuples with an item
1828 from each one.
Raymond Hettingerdd1150e2008-03-13 02:39:40 +00001829
Ram Rachum59cf8532020-06-19 23:39:22 +03001830 Example::
Raymond Hettingerdd1150e2008-03-13 02:39:40 +00001831
Ram Rachum59cf8532020-06-19 23:39:22 +03001832 >>> for item in zip([1, 2, 3], ['sugar', 'spice', 'everything nice']):
1833 ... print(item)
1834 ...
1835 (1, 'sugar')
1836 (2, 'spice')
1837 (3, 'everything nice')
Georg Brandl116aa622007-08-15 14:28:22 +00001838
Ram Rachum59cf8532020-06-19 23:39:22 +03001839 More formally: :func:`zip` returns an iterator of tuples, where the *i*-th
1840 tuple contains the *i*-th element from each of the argument iterables.
Christian Heimes1af737c2008-01-23 08:24:23 +00001841
Ram Rachum59cf8532020-06-19 23:39:22 +03001842 Another way to think of :func:`zip` is that it turns rows into columns, and
1843 columns into rows. This is similar to `transposing a matrix
1844 <https://en.wikipedia.org/wiki/Transpose>`_.
Georg Brandl116aa622007-08-15 14:28:22 +00001845
Ram Rachum59cf8532020-06-19 23:39:22 +03001846 :func:`zip` is lazy: The elements won't be processed until the iterable is
1847 iterated on, e.g. by a :keyword:`!for` loop or by wrapping in a
1848 :class:`list`.
Benjamin Petersonf10a79a2008-10-11 00:49:57 +00001849
Ram Rachum59cf8532020-06-19 23:39:22 +03001850 One thing to consider is that the iterables passed to :func:`zip` could have
1851 different lengths; sometimes by design, and sometimes because of a bug in
1852 the code that prepared these iterables. Python offers three different
1853 approaches to dealing with this issue:
1854
1855 * By default, :func:`zip` stops when the shortest iterable is exhausted.
1856 It will ignore the remaining items in the longer iterables, cutting off
1857 the result to the length of the shortest iterable::
1858
1859 >>> list(zip(range(3), ['fee', 'fi', 'fo', 'fum']))
1860 [(0, 'fee'), (1, 'fi'), (2, 'fo')]
1861
1862 * :func:`zip` is often used in cases where the iterables are assumed to be
1863 of equal length. In such cases, it's recommended to use the ``strict=True``
1864 option. Its output is the same as regular :func:`zip`::
1865
1866 >>> list(zip(('a', 'b', 'c'), (1, 2, 3), strict=True))
1867 [('a', 1), ('b', 2), ('c', 3)]
1868
1869 Unlike the default behavior, it checks that the lengths of iterables are
1870 identical, raising a :exc:`ValueError` if they aren't:
1871
1872 >>> list(zip(range(3), ['fee', 'fi', 'fo', 'fum'], strict=True))
1873 Traceback (most recent call last):
1874 ...
1875 ValueError: zip() argument 2 is longer than argument 1
1876
1877 Without the ``strict=True`` argument, any bug that results in iterables of
Ram Rachum77ed29b2020-06-26 00:50:37 +03001878 different lengths will be silenced, possibly manifesting as a hard-to-find
Ram Rachum59cf8532020-06-19 23:39:22 +03001879 bug in another part of the program.
1880
1881 * Shorter iterables can be padded with a constant value to make all the
1882 iterables have the same length. This is done by
1883 :func:`itertools.zip_longest`.
1884
1885 Edge cases: With a single iterable argument, :func:`zip` returns an
1886 iterator of 1-tuples. With no arguments, it returns an empty iterator.
1887
1888 Tips and tricks:
1889
1890 * The left-to-right evaluation order of the iterables is guaranteed. This
1891 makes possible an idiom for clustering a data series into n-length groups
1892 using ``zip(*[iter(s)]*n, strict=True)``. This repeats the *same* iterator
1893 ``n`` times so that each output tuple has the result of ``n`` calls to the
1894 iterator. This has the effect of dividing the input into n-length chunks.
1895
1896 * :func:`zip` in conjunction with the ``*`` operator can be used to unzip a
1897 list::
1898
1899 >>> x = [1, 2, 3]
1900 >>> y = [4, 5, 6]
1901 >>> list(zip(x, y))
1902 [(1, 4), (2, 5), (3, 6)]
1903 >>> x2, y2 = zip(*zip(x, y))
1904 >>> x == list(x2) and y == list(y2)
1905 True
1906
1907 .. versionchanged:: 3.10
1908 Added the ``strict`` argument.
Benjamin Petersonf10a79a2008-10-11 00:49:57 +00001909
Georg Brandl2ee470f2008-07-16 12:55:28 +00001910
Brett Cannoncb4996a2012-08-06 16:34:44 -04001911.. function:: __import__(name, globals=None, locals=None, fromlist=(), level=0)
Georg Brandl48367812008-12-05 15:55:41 +00001912
1913 .. index::
1914 statement: import
1915 module: imp
1916
1917 .. note::
1918
1919 This is an advanced function that is not needed in everyday Python
Éric Araujoe801aa22011-07-29 17:50:58 +02001920 programming, unlike :func:`importlib.import_module`.
Georg Brandl48367812008-12-05 15:55:41 +00001921
Benjamin Peterson6ebe78f2008-12-21 00:06:59 +00001922 This function is invoked by the :keyword:`import` statement. It can be
1923 replaced (by importing the :mod:`builtins` module and assigning to
1924 ``builtins.__import__``) in order to change semantics of the
Serhiy Storchaka2b57c432018-12-19 08:09:46 +02001925 :keyword:`!import` statement, but doing so is **strongly** discouraged as it
Brett Cannonf5ebd262013-08-23 10:58:49 -04001926 is usually simpler to use import hooks (see :pep:`302`) to attain the same
1927 goals and does not cause issues with code which assumes the default import
1928 implementation is in use. Direct use of :func:`__import__` is also
1929 discouraged in favor of :func:`importlib.import_module`.
Georg Brandl48367812008-12-05 15:55:41 +00001930
Benjamin Peterson6ebe78f2008-12-21 00:06:59 +00001931 The function imports the module *name*, potentially using the given *globals*
1932 and *locals* to determine how to interpret the name in a package context.
1933 The *fromlist* gives the names of objects or submodules that should be
1934 imported from the module given by *name*. The standard implementation does
Miss Islington (bot)2d049202021-07-19 09:38:56 -07001935 not use its *locals* argument at all and uses its *globals* only to
Benjamin Peterson6ebe78f2008-12-21 00:06:59 +00001936 determine the package context of the :keyword:`import` statement.
1937
Brett Cannon2b9fd472009-03-15 02:18:41 +00001938 *level* specifies whether to use absolute or relative imports. ``0`` (the
1939 default) means only perform absolute imports. Positive values for
Benjamin Peterson6ebe78f2008-12-21 00:06:59 +00001940 *level* indicate the number of parent directories to search relative to the
Brett Cannon2a082ad2012-04-14 21:58:33 -04001941 directory of the module calling :func:`__import__` (see :pep:`328` for the
1942 details).
Georg Brandl48367812008-12-05 15:55:41 +00001943
1944 When the *name* variable is of the form ``package.module``, normally, the
1945 top-level package (the name up till the first dot) is returned, *not* the
1946 module named by *name*. However, when a non-empty *fromlist* argument is
Benjamin Peterson6ebe78f2008-12-21 00:06:59 +00001947 given, the module named by *name* is returned.
Georg Brandl48367812008-12-05 15:55:41 +00001948
Benjamin Peterson6ebe78f2008-12-21 00:06:59 +00001949 For example, the statement ``import spam`` results in bytecode resembling the
1950 following code::
Georg Brandl48310cd2009-01-03 21:18:54 +00001951
Brett Cannon2b9fd472009-03-15 02:18:41 +00001952 spam = __import__('spam', globals(), locals(), [], 0)
Georg Brandl48367812008-12-05 15:55:41 +00001953
Benjamin Peterson6ebe78f2008-12-21 00:06:59 +00001954 The statement ``import spam.ham`` results in this call::
Georg Brandl48367812008-12-05 15:55:41 +00001955
Brett Cannon2b9fd472009-03-15 02:18:41 +00001956 spam = __import__('spam.ham', globals(), locals(), [], 0)
Benjamin Peterson6ebe78f2008-12-21 00:06:59 +00001957
1958 Note how :func:`__import__` returns the toplevel module here because this is
1959 the object that is bound to a name by the :keyword:`import` statement.
1960
1961 On the other hand, the statement ``from spam.ham import eggs, sausage as
1962 saus`` results in ::
1963
Brett Cannon2b9fd472009-03-15 02:18:41 +00001964 _temp = __import__('spam.ham', globals(), locals(), ['eggs', 'sausage'], 0)
Benjamin Peterson6ebe78f2008-12-21 00:06:59 +00001965 eggs = _temp.eggs
1966 saus = _temp.sausage
1967
1968 Here, the ``spam.ham`` module is returned from :func:`__import__`. From this
1969 object, the names to import are retrieved and assigned to their respective
1970 names.
1971
1972 If you simply want to import a module (potentially within a package) by name,
Éric Araujoe801aa22011-07-29 17:50:58 +02001973 use :func:`importlib.import_module`.
Benjamin Peterson6ebe78f2008-12-21 00:06:59 +00001974
Brett Cannon73df3642012-07-30 18:35:17 -04001975 .. versionchanged:: 3.3
Brett Cannon222d4732012-08-05 20:49:53 -04001976 Negative values for *level* are no longer supported (which also changes
1977 the default value to 0).
Brett Cannon73df3642012-07-30 18:35:17 -04001978
idomicfc72ab62020-03-09 07:57:53 -04001979 .. versionchanged:: 3.9
1980 When the command line options :option:`-E` or :option:`-I` are being used,
1981 the environment variable :envvar:`PYTHONCASEOK` is now ignored.
Georg Brandl48367812008-12-05 15:55:41 +00001982
Georg Brandl116aa622007-08-15 14:28:22 +00001983.. rubric:: Footnotes
1984
Georg Brandl47f27a32009-03-31 16:57:13 +00001985.. [#] Note that the parser only accepts the Unix-style end of line convention.
1986 If you are reading the code from a file, make sure to use newline conversion
1987 mode to convert Windows or Mac-style newlines.