blob: e9c92f7c8210d16135ccd72353182786358c70ea [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
Barry Warsaw36c1d1f2017-10-05 12:11:18 -040010=================== ================= ================== ================== ====================
11.. .. Built-in Functions .. ..
12=================== ================= ================== ================== ====================
13:func:`abs` :func:`delattr` :func:`hash` |func-memoryview|_ |func-set|_
14:func:`all` |func-dict|_ :func:`help` :func:`min` :func:`setattr`
15:func:`any` :func:`dir` :func:`hex` :func:`next` :func:`slice`
16:func:`ascii` :func:`divmod` :func:`id` :func:`object` :func:`sorted`
17:func:`bin` :func:`enumerate` :func:`input` :func:`oct` :func:`staticmethod`
18:func:`bool` :func:`eval` :func:`int` :func:`open` |func-str|_
19:func:`breakpoint` :func:`exec` :func:`isinstance` :func:`ord` :func:`sum`
20|func-bytearray|_ :func:`filter` :func:`issubclass` :func:`pow` :func:`super`
21|func-bytes|_ :func:`float` :func:`iter` :func:`print` |func-tuple|_
22:func:`callable` :func:`format` :func:`len` :func:`property` :func:`type`
23:func:`chr` |func-frozenset|_ |func-list|_ |func-range|_ :func:`vars`
24:func:`classmethod` :func:`getattr` :func:`locals` :func:`repr` :func:`zip`
25:func:`compile` :func:`globals` :func:`map` :func:`reversed` :func:`__import__`
Ezio Melotti17f9b3d2010-11-24 22:02:18 +000026:func:`complex` :func:`hasattr` :func:`max` :func:`round`
Barry Warsaw36c1d1f2017-10-05 12:11:18 -040027=================== ================= ================== ================== ====================
Georg Brandl116aa622007-08-15 14:28:22 +000028
Éric Araujo9edd9f02011-09-01 23:08:55 +020029.. using :func:`dict` would create a link to another page, so local targets are
30 used, with replacement texts to make the output in the table consistent
31
32.. |func-dict| replace:: ``dict()``
33.. |func-frozenset| replace:: ``frozenset()``
34.. |func-memoryview| replace:: ``memoryview()``
35.. |func-set| replace:: ``set()``
Nick Coghlan83c0ae52012-08-21 17:42:52 +100036.. |func-list| replace:: ``list()``
Chris Jerdonekbb4e9412012-11-28 01:38:40 -080037.. |func-str| replace:: ``str()``
Nick Coghlan83c0ae52012-08-21 17:42:52 +100038.. |func-tuple| replace:: ``tuple()``
39.. |func-range| replace:: ``range()``
csabellac6db4812017-04-26 01:47:01 -040040.. |func-bytearray| replace:: ``bytearray()``
41.. |func-bytes| replace:: ``bytes()``
Éric Araujo9edd9f02011-09-01 23:08:55 +020042
Georg Brandl116aa622007-08-15 14:28:22 +000043.. function:: abs(x)
44
Georg Brandlba956ae2007-11-29 17:24:34 +000045 Return the absolute value of a number. The argument may be an
Windson yang28316422020-05-29 19:35:34 +080046 integer, a floating point number, or an object implementing :meth:`__abs__`.
47 If the argument is a complex number, its magnitude is returned.
Georg Brandl116aa622007-08-15 14:28:22 +000048
49
50.. function:: all(iterable)
51
Serhiy Storchakafbc1c262013-11-29 12:17:13 +020052 Return ``True`` if all elements of the *iterable* are true (or if the iterable
Georg Brandl0192bff2009-04-27 16:49:41 +000053 is empty). Equivalent to::
Georg Brandl116aa622007-08-15 14:28:22 +000054
55 def all(iterable):
56 for element in iterable:
57 if not element:
58 return False
59 return True
60
Georg Brandl116aa622007-08-15 14:28:22 +000061
62.. function:: any(iterable)
63
Serhiy Storchakafbc1c262013-11-29 12:17:13 +020064 Return ``True`` if any element of the *iterable* is true. If the iterable
65 is empty, return ``False``. Equivalent to::
Georg Brandl116aa622007-08-15 14:28:22 +000066
67 def any(iterable):
68 for element in iterable:
69 if element:
70 return True
71 return False
72
Georg Brandl116aa622007-08-15 14:28:22 +000073
Georg Brandl559e5d72008-06-11 18:37:52 +000074.. function:: ascii(object)
75
76 As :func:`repr`, return a string containing a printable representation of an
77 object, but escape the non-ASCII characters in the string returned by
78 :func:`repr` using ``\x``, ``\u`` or ``\U`` escapes. This generates a string
79 similar to that returned by :func:`repr` in Python 2.
80
81
Georg Brandl116aa622007-08-15 14:28:22 +000082.. function:: bin(x)
83
Manvisha Kodali67ba4fa2017-07-06 22:30:58 +030084 Convert an integer number to a binary string prefixed with "0b". The result
85 is a valid Python expression. If *x* is not a Python :class:`int` object, it
86 has to define an :meth:`__index__` method that returns an integer. Some
87 examples:
88
89 >>> bin(3)
90 '0b11'
91 >>> bin(-10)
92 '-0b1010'
93
94 If prefix "0b" is desired or not, you can use either of the following ways.
95
96 >>> format(14, '#b'), format(14, 'b')
97 ('0b1110', '1110')
98 >>> f'{14:#b}', f'{14:b}'
99 ('0b1110', '1110')
100
Andrés Delfinobda9c3e2018-06-29 06:57:10 -0300101 See also :func:`format` for more information.
Georg Brandl116aa622007-08-15 14:28:22 +0000102
Georg Brandl116aa622007-08-15 14:28:22 +0000103
Georg Brandleb7e8f62014-10-06 13:54:36 +0200104.. class:: bool([x])
Georg Brandl116aa622007-08-15 14:28:22 +0000105
Georg Brandleb7e8f62014-10-06 13:54:36 +0200106 Return a Boolean value, i.e. one of ``True`` or ``False``. *x* is converted
107 using the standard :ref:`truth testing procedure <truth>`. If *x* is false
108 or omitted, this returns ``False``; otherwise it returns ``True``. The
109 :class:`bool` class is a subclass of :class:`int` (see :ref:`typesnumeric`).
110 It cannot be subclassed further. Its only instances are ``False`` and
Éric Araujo18ddf822011-09-01 23:10:36 +0200111 ``True`` (see :ref:`bltin-boolean-values`).
Georg Brandl116aa622007-08-15 14:28:22 +0000112
113 .. index:: pair: Boolean; type
114
Louis Sautier3fe89da2018-08-27 12:45:26 +0200115 .. versionchanged:: 3.7
116 *x* is now a positional-only parameter.
Georg Brandl116aa622007-08-15 14:28:22 +0000117
Barry Warsaw36c1d1f2017-10-05 12:11:18 -0400118.. function:: breakpoint(*args, **kws)
119
120 This function drops you into the debugger at the call site. Specifically,
121 it calls :func:`sys.breakpointhook`, passing ``args`` and ``kws`` straight
122 through. By default, ``sys.breakpointhook()`` calls
123 :func:`pdb.set_trace()` expecting no arguments. In this case, it is
124 purely a convenience function so you don't have to explicitly import
125 :mod:`pdb` or type as much code to enter the debugger. However,
126 :func:`sys.breakpointhook` can be set to some other function and
127 :func:`breakpoint` will automatically call that, allowing you to drop into
128 the debugger of choice.
129
Steve Dower44f91c32019-06-27 10:47:59 -0700130 .. audit-event:: builtins.breakpoint breakpointhook breakpoint
Steve Dower60419a72019-06-24 08:42:54 -0700131
Barry Warsaw36c1d1f2017-10-05 12:11:18 -0400132 .. versionadded:: 3.7
133
Nick Coghlan83c0ae52012-08-21 17:42:52 +1000134.. _func-bytearray:
Georg Brandleb7e8f62014-10-06 13:54:36 +0200135.. class:: bytearray([source[, encoding[, errors]]])
csabellac6db4812017-04-26 01:47:01 -0400136 :noindex:
Georg Brandl85eb8c12007-08-31 16:33:38 +0000137
Georg Brandleb7e8f62014-10-06 13:54:36 +0200138 Return a new array of bytes. The :class:`bytearray` class is a mutable
Georg Brandl95414632007-11-22 11:00:28 +0000139 sequence of integers in the range 0 <= x < 256. It has most of the usual
140 methods of mutable sequences, described in :ref:`typesseq-mutable`, as well
Antoine Pitroub85b3af2010-11-20 19:36:05 +0000141 as most methods that the :class:`bytes` type has, see :ref:`bytes-methods`.
Georg Brandl85eb8c12007-08-31 16:33:38 +0000142
Georg Brandl036490d2009-05-17 13:00:36 +0000143 The optional *source* parameter can be used to initialize the array in a few
Georg Brandl85eb8c12007-08-31 16:33:38 +0000144 different ways:
145
146 * If it is a *string*, you must also give the *encoding* (and optionally,
Georg Brandlf6945182008-02-01 11:56:49 +0000147 *errors*) parameters; :func:`bytearray` then converts the string to
Guido van Rossum98297ee2007-11-06 21:34:58 +0000148 bytes using :meth:`str.encode`.
Georg Brandl85eb8c12007-08-31 16:33:38 +0000149
150 * If it is an *integer*, the array will have that size and will be
151 initialized with null bytes.
152
153 * If it is an object conforming to the *buffer* interface, a read-only buffer
154 of the object will be used to initialize the bytes array.
155
Guido van Rossum98297ee2007-11-06 21:34:58 +0000156 * If it is an *iterable*, it must be an iterable of integers in the range
157 ``0 <= x < 256``, which are used as the initial contents of the array.
Georg Brandl85eb8c12007-08-31 16:33:38 +0000158
159 Without an argument, an array of size 0 is created.
160
Chris Jerdonek006d9072012-10-12 20:28:26 -0700161 See also :ref:`binaryseq` and :ref:`typebytearray`.
162
Georg Brandl85eb8c12007-08-31 16:33:38 +0000163
Nick Coghlan83c0ae52012-08-21 17:42:52 +1000164.. _func-bytes:
Georg Brandleb7e8f62014-10-06 13:54:36 +0200165.. class:: bytes([source[, encoding[, errors]]])
csabellac6db4812017-04-26 01:47:01 -0400166 :noindex:
Guido van Rossum98297ee2007-11-06 21:34:58 +0000167
168 Return a new "bytes" object, which is an immutable sequence of integers in
169 the range ``0 <= x < 256``. :class:`bytes` is an immutable version of
Georg Brandl95414632007-11-22 11:00:28 +0000170 :class:`bytearray` -- it has the same non-mutating methods and the same
171 indexing and slicing behavior.
Georg Brandl48310cd2009-01-03 21:18:54 +0000172
Georg Brandl476b3552009-04-29 06:37:12 +0000173 Accordingly, constructor arguments are interpreted as for :func:`bytearray`.
Guido van Rossum98297ee2007-11-06 21:34:58 +0000174
175 Bytes objects can also be created with literals, see :ref:`strings`.
176
Chris Jerdonek006d9072012-10-12 20:28:26 -0700177 See also :ref:`binaryseq`, :ref:`typebytes`, and :ref:`bytes-methods`.
178
Guido van Rossum98297ee2007-11-06 21:34:58 +0000179
Antoine Pitroue71362d2010-11-27 22:00:11 +0000180.. function:: callable(object)
181
182 Return :const:`True` if the *object* argument appears callable,
Serhiy Storchaka138ccbb2019-11-12 16:57:03 +0200183 :const:`False` if not. If this returns ``True``, it is still possible that a
184 call fails, but if it is ``False``, calling *object* will never succeed.
Antoine Pitroue71362d2010-11-27 22:00:11 +0000185 Note that classes are callable (calling a class returns a new instance);
186 instances are callable if their class has a :meth:`__call__` method.
187
188 .. versionadded:: 3.2
189 This function was first removed in Python 3.0 and then brought back
190 in Python 3.2.
191
192
Georg Brandl116aa622007-08-15 14:28:22 +0000193.. function:: chr(i)
194
Georg Brandl3be472b2015-01-14 08:26:30 +0100195 Return the string representing a character whose Unicode code point is the
Nick Coghlaneed67192014-08-17 14:07:53 +1000196 integer *i*. For example, ``chr(97)`` returns the string ``'a'``, while
Terry Jan Reedy01a9a952016-03-23 13:36:52 -0400197 ``chr(8364)`` returns the string ``'€'``. This is the inverse of :func:`ord`.
Nick Coghlaneed67192014-08-17 14:07:53 +1000198
199 The valid range for the argument is from 0 through 1,114,111 (0x10FFFF in
200 base 16). :exc:`ValueError` will be raised if *i* is outside that range.
Alexander Belopolsky5d4dd3e2010-11-18 18:50:13 +0000201
Georg Brandl116aa622007-08-15 14:28:22 +0000202
Daisuke Miyakawa0e61e672017-10-12 23:39:43 +0900203.. decorator:: classmethod
Georg Brandl116aa622007-08-15 14:28:22 +0000204
Daisuke Miyakawa0e61e672017-10-12 23:39:43 +0900205 Transform a method into a class method.
Georg Brandl116aa622007-08-15 14:28:22 +0000206
207 A class method receives the class as implicit first argument, just like an
208 instance method receives the instance. To declare a class method, use this
209 idiom::
210
211 class C:
212 @classmethod
213 def f(cls, arg1, arg2, ...): ...
214
Andre Delfino548cb602019-03-25 19:53:43 -0300215 The ``@classmethod`` form is a function :term:`decorator` -- see
216 :ref:`function` for details.
Georg Brandl116aa622007-08-15 14:28:22 +0000217
Andre Delfino548cb602019-03-25 19:53:43 -0300218 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 +0000219 as ``C().f()``). The instance is ignored except for its class. If a class
220 method is called for a derived class, the derived class object is passed as the
221 implied first argument.
222
223 Class methods are different than C++ or Java static methods. If you want those,
Berker Peksag805f8f92019-08-25 01:37:25 +0300224 see :func:`staticmethod` in this section.
Andre Delfino548cb602019-03-25 19:53:43 -0300225 For more information on class methods, see :ref:`types`.
Georg Brandl116aa622007-08-15 14:28:22 +0000226
Berker Peksag805f8f92019-08-25 01:37:25 +0300227 .. versionchanged:: 3.9
228 Class methods can now wrap other :term:`descriptors <descriptor>` such as
229 :func:`property`.
Georg Brandl116aa622007-08-15 14:28:22 +0000230
Georg Brandl8334fd92010-12-04 10:26:46 +0000231.. function:: compile(source, filename, mode, flags=0, dont_inherit=False, optimize=-1)
Georg Brandl116aa622007-08-15 14:28:22 +0000232
Benjamin Petersonec9199b2008-11-08 17:05:00 +0000233 Compile the *source* into a code or AST object. Code objects can be executed
Benjamin Peterson933142a2013-12-06 20:12:39 -0500234 by :func:`exec` or :func:`eval`. *source* can either be a normal string, a
235 byte string, or an AST object. Refer to the :mod:`ast` module documentation
236 for information on how to work with AST objects.
Georg Brandl116aa622007-08-15 14:28:22 +0000237
Benjamin Petersonec9199b2008-11-08 17:05:00 +0000238 The *filename* argument should give the file from which the code was read;
239 pass some recognizable value if it wasn't read from a file (``'<string>'`` is
240 commonly used).
241
242 The *mode* argument specifies what kind of code must be compiled; it can be
243 ``'exec'`` if *source* consists of a sequence of statements, ``'eval'`` if it
244 consists of a single expression, or ``'single'`` if it consists of a single
245 interactive statement (in the latter case, expression statements that
R. David Murray66011262009-06-25 17:37:57 +0000246 evaluate to something other than ``None`` will be printed).
Georg Brandl116aa622007-08-15 14:28:22 +0000247
Andrés Delfino33aefad2018-07-11 06:44:06 -0300248 The optional arguments *flags* and *dont_inherit* control which :ref:`future
249 statements <future>` affect the compilation of *source*. If neither
Georg Brandle06de8b2008-05-05 21:42:51 +0000250 is present (or both are zero) the code is compiled with those future
Georg Brandle4196d32014-10-31 09:41:46 +0100251 statements that are in effect in the code that is calling :func:`compile`. If the
Georg Brandle06de8b2008-05-05 21:42:51 +0000252 *flags* argument is given and *dont_inherit* is not (or is zero) then the
Georg Brandl116aa622007-08-15 14:28:22 +0000253 future statements specified by the *flags* argument are used in addition to
254 those that would be used anyway. If *dont_inherit* is a non-zero integer then
Georg Brandle06de8b2008-05-05 21:42:51 +0000255 the *flags* argument is it -- the future statements in effect around the call
256 to compile are ignored.
Georg Brandl116aa622007-08-15 14:28:22 +0000257
Christian Heimesfaf2f632008-01-06 16:59:19 +0000258 Future statements are specified by bits which can be bitwise ORed together to
Georg Brandl116aa622007-08-15 14:28:22 +0000259 specify multiple statements. The bitfield required to specify a given feature
Serhiy Storchaka0d196ed2013-10-09 14:02:31 +0300260 can be found as the :attr:`~__future__._Feature.compiler_flag` attribute on
261 the :class:`~__future__._Feature` instance in the :mod:`__future__` module.
Georg Brandl116aa622007-08-15 14:28:22 +0000262
Matthias Bussonnier565b4f12019-05-21 13:12:03 -0700263 The optional argument *flags* also controls whether the compiled source is
264 allowed to contain top-level ``await``, ``async for`` and ``async with``.
265 When the bit ``ast.PyCF_ALLOW_TOP_LEVEL_AWAIT`` is set, the return code
266 object has ``CO_COROUTINE`` set in ``co_code``, and can be interactively
267 executed via ``await eval(code_object)``.
268
Georg Brandl8334fd92010-12-04 10:26:46 +0000269 The argument *optimize* specifies the optimization level of the compiler; the
270 default value of ``-1`` selects the optimization level of the interpreter as
271 given by :option:`-O` options. Explicit levels are ``0`` (no optimization;
272 ``__debug__`` is true), ``1`` (asserts are removed, ``__debug__`` is false)
273 or ``2`` (docstrings are removed too).
274
Christian Heimes7f044312008-01-06 17:05:40 +0000275 This function raises :exc:`SyntaxError` if the compiled source is invalid,
Berker Peksag0334c3c2016-02-21 22:00:12 +0200276 and :exc:`ValueError` if the source contains null bytes.
Christian Heimes7f044312008-01-06 17:05:40 +0000277
Georg Brandle4196d32014-10-31 09:41:46 +0100278 If you want to parse Python code into its AST representation, see
279 :func:`ast.parse`.
280
Steve Dower44f91c32019-06-27 10:47:59 -0700281 .. audit-event:: compile source,filename compile
Steve Dowerb82e17e2019-05-23 08:45:22 -0700282
Steve Dower60419a72019-06-24 08:42:54 -0700283 Raises an :ref:`auditing event <auditing>` ``compile`` with arguments
Steve Dowerb82e17e2019-05-23 08:45:22 -0700284 ``source`` and ``filename``. This event may also be raised by implicit
285 compilation.
286
Benjamin Petersonec9199b2008-11-08 17:05:00 +0000287 .. note::
288
Benjamin Peterson20211002009-11-25 18:34:42 +0000289 When compiling a string with multi-line code in ``'single'`` or
Benjamin Petersonaeaa5922009-11-13 00:17:59 +0000290 ``'eval'`` mode, input must be terminated by at least one newline
291 character. This is to facilitate detection of incomplete and complete
292 statements in the :mod:`code` module.
293
Brett Cannonf7a6ff62018-03-09 13:13:32 -0800294 .. warning::
295
296 It is possible to crash the Python interpreter with a
297 sufficiently large/complex string when compiling to an AST
298 object due to stack depth limitations in Python's AST compiler.
299
Benjamin Petersonaeaa5922009-11-13 00:17:59 +0000300 .. versionchanged:: 3.2
301 Allowed use of Windows and Mac newlines. Also input in ``'exec'`` mode
Georg Brandl8334fd92010-12-04 10:26:46 +0000302 does not have to end in a newline anymore. Added the *optimize* parameter.
Benjamin Petersonec9199b2008-11-08 17:05:00 +0000303
Berker Peksag0334c3c2016-02-21 22:00:12 +0200304 .. versionchanged:: 3.5
305 Previously, :exc:`TypeError` was raised when null bytes were encountered
306 in *source*.
307
Matthias Bussonnier565b4f12019-05-21 13:12:03 -0700308 .. versionadded:: 3.8
309 ``ast.PyCF_ALLOW_TOP_LEVEL_AWAIT`` can now be passed in flags to enable
310 support for top-level ``await``, ``async for``, and ``async with``.
311
Georg Brandl116aa622007-08-15 14:28:22 +0000312
Georg Brandleb7e8f62014-10-06 13:54:36 +0200313.. class:: complex([real[, imag]])
Georg Brandl116aa622007-08-15 14:28:22 +0000314
Terry Jan Reedy43cba212015-05-23 16:16:28 -0400315 Return a complex number with the value *real* + *imag*\*1j or convert a string
Georg Brandleb7e8f62014-10-06 13:54:36 +0200316 or number to a complex number. If the first parameter is a string, it will
317 be interpreted as a complex number and the function must be called without a
318 second parameter. The second parameter can never be a string. Each argument
319 may be any numeric type (including complex). If *imag* is omitted, it
320 defaults to zero and the constructor serves as a numeric conversion like
321 :class:`int` and :class:`float`. If both arguments are omitted, returns
322 ``0j``.
Georg Brandl116aa622007-08-15 14:28:22 +0000323
Serhiy Storchakabdbad712019-06-02 00:05:48 +0300324 For a general Python object ``x``, ``complex(x)`` delegates to
325 ``x.__complex__()``. If ``__complex__()`` is not defined then it falls back
326 to :meth:`__float__`. If ``__float__()`` is not defined then it falls back
327 to :meth:`__index__`.
328
Mark Dickinson328dd0d2012-03-10 16:09:35 +0000329 .. note::
330
331 When converting from a string, the string must not contain whitespace
332 around the central ``+`` or ``-`` operator. For example,
333 ``complex('1+2j')`` is fine, but ``complex('1 + 2j')`` raises
334 :exc:`ValueError`.
335
Georg Brandl116aa622007-08-15 14:28:22 +0000336 The complex type is described in :ref:`typesnumeric`.
337
Brett Cannona721aba2016-09-09 14:57:09 -0700338 .. versionchanged:: 3.6
339 Grouping digits with underscores as in code literals is allowed.
340
Serhiy Storchakabdbad712019-06-02 00:05:48 +0300341 .. versionchanged:: 3.8
342 Falls back to :meth:`__index__` if :meth:`__complex__` and
343 :meth:`__float__` are not defined.
344
Georg Brandl116aa622007-08-15 14:28:22 +0000345
346.. function:: delattr(object, name)
347
348 This is a relative of :func:`setattr`. The arguments are an object and a
349 string. The string must be the name of one of the object's attributes. The
350 function deletes the named attribute, provided the object allows it. For
351 example, ``delattr(x, 'foobar')`` is equivalent to ``del x.foobar``.
352
353
Éric Araujo9edd9f02011-09-01 23:08:55 +0200354.. _func-dict:
Georg Brandleb7e8f62014-10-06 13:54:36 +0200355.. class:: dict(**kwarg)
356 dict(mapping, **kwarg)
357 dict(iterable, **kwarg)
Georg Brandl116aa622007-08-15 14:28:22 +0000358 :noindex:
359
Chris Jerdonekf3413172012-10-13 03:22:33 -0700360 Create a new dictionary. The :class:`dict` object is the dictionary class.
Georg Brandleb7e8f62014-10-06 13:54:36 +0200361 See :class:`dict` and :ref:`typesmapping` for documentation about this class.
Georg Brandl116aa622007-08-15 14:28:22 +0000362
Chris Jerdonekf3413172012-10-13 03:22:33 -0700363 For other containers see the built-in :class:`list`, :class:`set`, and
364 :class:`tuple` classes, as well as the :mod:`collections` module.
Georg Brandl116aa622007-08-15 14:28:22 +0000365
366
367.. function:: dir([object])
368
369 Without arguments, return the list of names in the current local scope. With an
370 argument, attempt to return a list of valid attributes for that object.
371
372 If the object has a method named :meth:`__dir__`, this method will be called and
373 must return the list of attributes. This allows objects that implement a custom
374 :func:`__getattr__` or :func:`__getattribute__` function to customize the way
375 :func:`dir` reports their attributes.
376
377 If the object does not provide :meth:`__dir__`, the function tries its best to
Martin Panterbae5d812016-06-18 03:57:31 +0000378 gather information from the object's :attr:`~object.__dict__` attribute, if defined, and
Georg Brandl116aa622007-08-15 14:28:22 +0000379 from its type object. The resulting list is not necessarily complete, and may
380 be inaccurate when the object has a custom :func:`__getattr__`.
381
382 The default :func:`dir` mechanism behaves differently with different types of
383 objects, as it attempts to produce the most relevant, rather than complete,
384 information:
385
386 * If the object is a module object, the list contains the names of the module's
387 attributes.
388
389 * If the object is a type or class object, the list contains the names of its
390 attributes, and recursively of the attributes of its bases.
391
392 * Otherwise, the list contains the object's attributes' names, the names of its
393 class's attributes, and recursively of the attributes of its class's base
394 classes.
395
Christian Heimesfe337bf2008-03-23 21:54:12 +0000396 The resulting list is sorted alphabetically. For example:
397
398 >>> import struct
Marco Buttue65fcde2017-04-27 14:23:34 +0200399 >>> dir() # show the names in the module namespace # doctest: +SKIP
Andrew Svetlov439e17f2012-08-12 15:16:42 +0300400 ['__builtins__', '__name__', 'struct']
401 >>> dir(struct) # show the names in the struct module # doctest: +SKIP
402 ['Struct', '__all__', '__builtins__', '__cached__', '__doc__', '__file__',
403 '__initializing__', '__loader__', '__name__', '__package__',
404 '_clearcache', 'calcsize', 'error', 'pack', 'pack_into',
Christian Heimesfe337bf2008-03-23 21:54:12 +0000405 'unpack', 'unpack_from']
Ezio Melottiaf8838f2013-03-11 09:30:21 +0200406 >>> class Shape:
Andrew Svetlov439e17f2012-08-12 15:16:42 +0300407 ... def __dir__(self):
408 ... return ['area', 'perimeter', 'location']
Raymond Hettinger90289282011-06-01 16:17:23 -0700409 >>> s = Shape()
410 >>> dir(s)
Andrew Svetlov439e17f2012-08-12 15:16:42 +0300411 ['area', 'location', 'perimeter']
Georg Brandl116aa622007-08-15 14:28:22 +0000412
413 .. note::
414
415 Because :func:`dir` is supplied primarily as a convenience for use at an
Georg Brandl036490d2009-05-17 13:00:36 +0000416 interactive prompt, it tries to supply an interesting set of names more
417 than it tries to supply a rigorously or consistently defined set of names,
418 and its detailed behavior may change across releases. For example,
419 metaclass attributes are not in the result list when the argument is a
420 class.
Georg Brandl116aa622007-08-15 14:28:22 +0000421
422
423.. function:: divmod(a, b)
424
425 Take two (non complex) numbers as arguments and return a pair of numbers
Georg Brandl036490d2009-05-17 13:00:36 +0000426 consisting of their quotient and remainder when using integer division. With
427 mixed operand types, the rules for binary arithmetic operators apply. For
428 integers, the result is the same as ``(a // b, a % b)``. For floating point
429 numbers the result is ``(q, a % b)``, where *q* is usually ``math.floor(a /
430 b)`` but may be 1 less than that. In any case ``q * b + a % b`` is very
431 close to *a*, if ``a % b`` is non-zero it has the same sign as *b*, and ``0
432 <= abs(a % b) < abs(b)``.
Georg Brandl116aa622007-08-15 14:28:22 +0000433
Georg Brandl116aa622007-08-15 14:28:22 +0000434
Georg Brandl036490d2009-05-17 13:00:36 +0000435.. function:: enumerate(iterable, start=0)
Georg Brandl116aa622007-08-15 14:28:22 +0000436
Georg Brandld11ae5d2008-05-16 13:27:32 +0000437 Return an enumerate object. *iterable* must be a sequence, an
Ezio Melotti7fa82222012-10-12 13:42:08 +0300438 :term:`iterator`, or some other object which supports iteration.
439 The :meth:`~iterator.__next__` method of the iterator returned by
440 :func:`enumerate` returns a tuple containing a count (from *start* which
441 defaults to 0) and the values obtained from iterating over *iterable*.
Georg Brandl116aa622007-08-15 14:28:22 +0000442
Raymond Hettinger9d3df6d2011-06-25 15:00:14 +0200443 >>> seasons = ['Spring', 'Summer', 'Fall', 'Winter']
444 >>> list(enumerate(seasons))
445 [(0, 'Spring'), (1, 'Summer'), (2, 'Fall'), (3, 'Winter')]
446 >>> list(enumerate(seasons, start=1))
447 [(1, 'Spring'), (2, 'Summer'), (3, 'Fall'), (4, 'Winter')]
Raymond Hettinger90289282011-06-01 16:17:23 -0700448
449 Equivalent to::
450
451 def enumerate(sequence, start=0):
452 n = start
453 for elem in sequence:
454 yield n, elem
455 n += 1
Georg Brandl116aa622007-08-15 14:28:22 +0000456
Georg Brandl116aa622007-08-15 14:28:22 +0000457
smokephil7a0023e2019-09-11 12:30:04 +0200458.. function:: eval(expression[, globals[, locals]])
Georg Brandl116aa622007-08-15 14:28:22 +0000459
460 The arguments are a string and optional globals and locals. If provided,
461 *globals* must be a dictionary. If provided, *locals* can be any mapping
462 object.
463
Georg Brandl116aa622007-08-15 14:28:22 +0000464 The *expression* argument is parsed and evaluated as a Python expression
465 (technically speaking, a condition list) using the *globals* and *locals*
Georg Brandl9afde1c2007-11-01 20:32:30 +0000466 dictionaries as global and local namespace. If the *globals* dictionary is
Berker Peksag225b0552018-08-19 13:25:33 +0300467 present and does not contain a value for the key ``__builtins__``, a
468 reference to the dictionary of the built-in module :mod:`builtins` is
Raymond Hettinger610a4822019-08-06 17:56:22 -0700469 inserted under that key before *expression* is parsed. This means that
470 *expression* normally has full access to the standard :mod:`builtins`
471 module and restricted environments are propagated. If the *locals*
472 dictionary is omitted it defaults to the *globals* dictionary. If both
473 dictionaries are omitted, the expression is executed with the *globals* and
474 *locals* in the environment where :func:`eval` is called. Note, *eval()*
Géry Ogamd6727912019-11-21 03:10:19 +0100475 does not have access to the :term:`nested scopes <nested scope>` (non-locals) in the
Raymond Hettinger610a4822019-08-06 17:56:22 -0700476 enclosing environment.
477
478 The return value is the result of
Christian Heimesfe337bf2008-03-23 21:54:12 +0000479 the evaluated expression. Syntax errors are reported as exceptions. Example:
Georg Brandl116aa622007-08-15 14:28:22 +0000480
481 >>> x = 1
Georg Brandl6911e3c2007-09-04 07:15:32 +0000482 >>> eval('x+1')
Georg Brandl116aa622007-08-15 14:28:22 +0000483 2
484
Benjamin Peterson3e4f0552008-09-02 00:31:15 +0000485 This function can also be used to execute arbitrary code objects (such as
486 those created by :func:`compile`). In this case pass a code object instead
487 of a string. If the code object has been compiled with ``'exec'`` as the
Georg Brandl1f70cdf2010-03-21 09:04:24 +0000488 *mode* argument, :func:`eval`\'s return value will be ``None``.
Georg Brandl116aa622007-08-15 14:28:22 +0000489
490 Hints: dynamic execution of statements is supported by the :func:`exec`
491 function. The :func:`globals` and :func:`locals` functions
492 returns the current global and local dictionary, respectively, which may be
493 useful to pass around for use by :func:`eval` or :func:`exec`.
494
Georg Brandl05bfcc52010-07-11 09:42:10 +0000495 See :func:`ast.literal_eval` for a function that can safely evaluate strings
496 with expressions containing only literals.
497
Steve Dower44f91c32019-06-27 10:47:59 -0700498 .. audit-event:: exec code_object eval
Steve Dowerb82e17e2019-05-23 08:45:22 -0700499
Steve Dower60419a72019-06-24 08:42:54 -0700500 Raises an :ref:`auditing event <auditing>` ``exec`` with the code object
501 as the argument. Code compilation events may also be raised.
Steve Dowerb82e17e2019-05-23 08:45:22 -0700502
Berker Peksag3410af42014-07-04 15:06:45 +0300503.. index:: builtin: exec
Georg Brandl116aa622007-08-15 14:28:22 +0000504
505.. function:: exec(object[, globals[, locals]])
506
Benjamin Petersond3013ff2008-11-11 21:43:42 +0000507 This function supports dynamic execution of Python code. *object* must be
508 either a string or a code object. If it is a string, the string is parsed as
509 a suite of Python statements which is then executed (unless a syntax error
Georg Brandl47f27a32009-03-31 16:57:13 +0000510 occurs). [#]_ If it is a code object, it is simply executed. In all cases,
511 the code that's executed is expected to be valid as file input (see the
512 section "File input" in the Reference Manual). Be aware that the
513 :keyword:`return` and :keyword:`yield` statements may not be used outside of
514 function definitions even within the context of code passed to the
515 :func:`exec` function. The return value is ``None``.
Georg Brandl116aa622007-08-15 14:28:22 +0000516
517 In all cases, if the optional parts are omitted, the code is executed in the
Anthony Shaw059b9ea2019-06-02 01:51:58 +1000518 current scope. If only *globals* is provided, it must be a dictionary
519 (and not a subclass of dictionary), which
Georg Brandl116aa622007-08-15 14:28:22 +0000520 will be used for both the global and the local variables. If *globals* and
521 *locals* are given, they are used for the global and local variables,
Terry Jan Reedy83efd6c2012-07-08 17:36:14 -0400522 respectively. If provided, *locals* can be any mapping object. Remember
523 that at module level, globals and locals are the same dictionary. If exec
524 gets two separate objects as *globals* and *locals*, the code will be
525 executed as if it were embedded in a class definition.
Georg Brandl116aa622007-08-15 14:28:22 +0000526
527 If the *globals* dictionary does not contain a value for the key
528 ``__builtins__``, a reference to the dictionary of the built-in module
Georg Brandl1a3284e2007-12-02 09:40:06 +0000529 :mod:`builtins` is inserted under that key. That way you can control what
Georg Brandl116aa622007-08-15 14:28:22 +0000530 builtins are available to the executed code by inserting your own
531 ``__builtins__`` dictionary into *globals* before passing it to :func:`exec`.
532
Steve Dower44f91c32019-06-27 10:47:59 -0700533 .. audit-event:: exec code_object exec
Steve Dowerb82e17e2019-05-23 08:45:22 -0700534
Steve Dower60419a72019-06-24 08:42:54 -0700535 Raises an :ref:`auditing event <auditing>` ``exec`` with the code object
536 as the argument. Code compilation events may also be raised.
Steve Dowerb82e17e2019-05-23 08:45:22 -0700537
Georg Brandl116aa622007-08-15 14:28:22 +0000538 .. note::
539
540 The built-in functions :func:`globals` and :func:`locals` return the current
541 global and local dictionary, respectively, which may be useful to pass around
542 for use as the second and third argument to :func:`exec`.
543
Georg Brandle720c0a2009-04-27 16:20:50 +0000544 .. note::
Georg Brandl116aa622007-08-15 14:28:22 +0000545
546 The default *locals* act as described for function :func:`locals` below:
Georg Brandlf6945182008-02-01 11:56:49 +0000547 modifications to the default *locals* dictionary should not be attempted.
548 Pass an explicit *locals* dictionary if you need to see effects of the
549 code on *locals* after function :func:`exec` returns.
Georg Brandl116aa622007-08-15 14:28:22 +0000550
551
552.. function:: filter(function, iterable)
553
Georg Brandl952aea22007-09-04 17:50:40 +0000554 Construct an iterator from those elements of *iterable* for which *function*
555 returns true. *iterable* may be either a sequence, a container which
Georg Brandl9afde1c2007-11-01 20:32:30 +0000556 supports iteration, or an iterator. If *function* is ``None``, the identity
557 function is assumed, that is, all elements of *iterable* that are false are
558 removed.
Georg Brandl116aa622007-08-15 14:28:22 +0000559
Georg Brandl952aea22007-09-04 17:50:40 +0000560 Note that ``filter(function, iterable)`` is equivalent to the generator
561 expression ``(item for item in iterable if function(item))`` if function is
562 not ``None`` and ``(item for item in iterable if item)`` if function is
563 ``None``.
Georg Brandl116aa622007-08-15 14:28:22 +0000564
Raymond Hettingercdf8ba32009-02-19 04:45:07 +0000565 See :func:`itertools.filterfalse` for the complementary function that returns
566 elements of *iterable* for which *function* returns false.
567
Georg Brandl116aa622007-08-15 14:28:22 +0000568
Georg Brandleb7e8f62014-10-06 13:54:36 +0200569.. class:: float([x])
Georg Brandl116aa622007-08-15 14:28:22 +0000570
Mark Dickinson47c74ac2010-11-21 21:09:58 +0000571 .. index::
572 single: NaN
573 single: Infinity
Georg Brandl116aa622007-08-15 14:28:22 +0000574
Georg Brandleb7e8f62014-10-06 13:54:36 +0200575 Return a floating point number constructed from a number or string *x*.
Georg Brandl116aa622007-08-15 14:28:22 +0000576
Mark Dickinson47c74ac2010-11-21 21:09:58 +0000577 If the argument is a string, it should contain a decimal number, optionally
578 preceded by a sign, and optionally embedded in whitespace. The optional
579 sign may be ``'+'`` or ``'-'``; a ``'+'`` sign has no effect on the value
580 produced. The argument may also be a string representing a NaN
581 (not-a-number), or a positive or negative infinity. More precisely, the
582 input must conform to the following grammar after leading and trailing
583 whitespace characters are removed:
Georg Brandl116aa622007-08-15 14:28:22 +0000584
Mark Dickinson47c74ac2010-11-21 21:09:58 +0000585 .. productionlist::
586 sign: "+" | "-"
587 infinity: "Infinity" | "inf"
588 nan: "nan"
Georg Brandl46402372010-12-04 19:06:18 +0000589 numeric_value: `floatnumber` | `infinity` | `nan`
590 numeric_string: [`sign`] `numeric_value`
Mark Dickinson47c74ac2010-11-21 21:09:58 +0000591
592 Here ``floatnumber`` is the form of a Python floating-point literal,
593 described in :ref:`floating`. Case is not significant, so, for example,
594 "inf", "Inf", "INFINITY" and "iNfINity" are all acceptable spellings for
595 positive infinity.
596
597 Otherwise, if the argument is an integer or a floating point number, a
598 floating point number with the same value (within Python's floating point
599 precision) is returned. If the argument is outside the range of a Python
600 float, an :exc:`OverflowError` will be raised.
601
602 For a general Python object ``x``, ``float(x)`` delegates to
Serhiy Storchakabdbad712019-06-02 00:05:48 +0300603 ``x.__float__()``. If ``__float__()`` is not defined then it falls back
604 to :meth:`__index__`.
Mark Dickinson47c74ac2010-11-21 21:09:58 +0000605
606 If no argument is given, ``0.0`` is returned.
607
608 Examples::
609
610 >>> float('+1.23')
611 1.23
612 >>> float(' -12345\n')
613 -12345.0
614 >>> float('1e-003')
615 0.001
616 >>> float('+1E6')
617 1000000.0
618 >>> float('-Infinity')
619 -inf
Georg Brandl116aa622007-08-15 14:28:22 +0000620
621 The float type is described in :ref:`typesnumeric`.
622
Brett Cannona721aba2016-09-09 14:57:09 -0700623 .. versionchanged:: 3.6
624 Grouping digits with underscores as in code literals is allowed.
Chris Jerdonekbb4e9412012-11-28 01:38:40 -0800625
Louis Sautier3fe89da2018-08-27 12:45:26 +0200626 .. versionchanged:: 3.7
627 *x* is now a positional-only parameter.
628
Serhiy Storchakabdbad712019-06-02 00:05:48 +0300629 .. versionchanged:: 3.8
630 Falls back to :meth:`__index__` if :meth:`__float__` is not defined.
631
Éric Araujo9edd9f02011-09-01 23:08:55 +0200632
Brett Cannona721aba2016-09-09 14:57:09 -0700633.. index::
634 single: __format__
635 single: string; format() (built-in function)
636
Georg Brandl4b491312007-08-31 09:22:56 +0000637.. function:: format(value[, format_spec])
638
Georg Brandl5579ba92009-02-23 10:24:05 +0000639 Convert a *value* to a "formatted" representation, as controlled by
640 *format_spec*. The interpretation of *format_spec* will depend on the type
641 of the *value* argument, however there is a standard formatting syntax that
642 is used by most built-in types: :ref:`formatspec`.
Georg Brandl48310cd2009-01-03 21:18:54 +0000643
Raymond Hettinger30439b22011-05-11 10:47:27 -0700644 The default *format_spec* is an empty string which usually gives the same
Chris Jerdonek5fae0e52012-11-20 17:45:51 -0800645 effect as calling :func:`str(value) <str>`.
Georg Brandl4b491312007-08-31 09:22:56 +0000646
Raymond Hettinger30439b22011-05-11 10:47:27 -0700647 A call to ``format(value, format_spec)`` is translated to
Georg Brandle4196d32014-10-31 09:41:46 +0100648 ``type(value).__format__(value, format_spec)`` which bypasses the instance
Raymond Hettinger30439b22011-05-11 10:47:27 -0700649 dictionary when searching for the value's :meth:`__format__` method. A
Larry Hastings3732ed22014-03-15 21:13:56 -0700650 :exc:`TypeError` exception is raised if the method search reaches
651 :mod:`object` and the *format_spec* is non-empty, or if either the
652 *format_spec* or the return value are not strings.
Georg Brandl4b491312007-08-31 09:22:56 +0000653
Larry Hastings3732ed22014-03-15 21:13:56 -0700654 .. versionchanged:: 3.4
Andrew Svetlov0794fe02012-12-23 15:12:19 +0200655 ``object().__format__(format_spec)`` raises :exc:`TypeError`
Larry Hastings3732ed22014-03-15 21:13:56 -0700656 if *format_spec* is not an empty string.
Andrew Svetlov0794fe02012-12-23 15:12:19 +0200657
Éric Araujo9edd9f02011-09-01 23:08:55 +0200658
659.. _func-frozenset:
Georg Brandleb7e8f62014-10-06 13:54:36 +0200660.. class:: frozenset([iterable])
Georg Brandl116aa622007-08-15 14:28:22 +0000661 :noindex:
662
Chris Jerdonekdf3abec2012-11-09 18:57:32 -0800663 Return a new :class:`frozenset` object, optionally with elements taken from
664 *iterable*. ``frozenset`` is a built-in class. See :class:`frozenset` and
665 :ref:`types-set` for documentation about this class.
Georg Brandl116aa622007-08-15 14:28:22 +0000666
Chris Jerdonekdf3abec2012-11-09 18:57:32 -0800667 For other containers see the built-in :class:`set`, :class:`list`,
668 :class:`tuple`, and :class:`dict` classes, as well as the :mod:`collections`
669 module.
Georg Brandl116aa622007-08-15 14:28:22 +0000670
Georg Brandl116aa622007-08-15 14:28:22 +0000671
672.. function:: getattr(object, name[, default])
673
Georg Brandl8e4ddcf2010-10-16 18:51:05 +0000674 Return the value of the named attribute of *object*. *name* must be a string.
Georg Brandl116aa622007-08-15 14:28:22 +0000675 If the string is the name of one of the object's attributes, the result is the
676 value of that attribute. For example, ``getattr(x, 'foobar')`` is equivalent to
677 ``x.foobar``. If the named attribute does not exist, *default* is returned if
678 provided, otherwise :exc:`AttributeError` is raised.
679
680
681.. function:: globals()
682
683 Return a dictionary representing the current global symbol table. This is always
684 the dictionary of the current module (inside a function or method, this is the
685 module where it is defined, not the module from which it is called).
686
687
688.. function:: hasattr(object, name)
689
Benjamin Peterson17689992010-08-24 03:26:23 +0000690 The arguments are an object and a string. The result is ``True`` if the
691 string is the name of one of the object's attributes, ``False`` if not. (This
692 is implemented by calling ``getattr(object, name)`` and seeing whether it
693 raises an :exc:`AttributeError` or not.)
Georg Brandl116aa622007-08-15 14:28:22 +0000694
695
696.. function:: hash(object)
697
Barry Warsaw224a5992013-07-15 14:47:29 -0400698 Return the hash value of the object (if it has one). Hash values are
699 integers. They are used to quickly compare dictionary keys during a
700 dictionary lookup. Numeric values that compare equal have the same hash
701 value (even if they are of different types, as is the case for 1 and 1.0).
Georg Brandl116aa622007-08-15 14:28:22 +0000702
Andrés Delfinobda9c3e2018-06-29 06:57:10 -0300703 .. note::
Barry Warsaw224a5992013-07-15 14:47:29 -0400704
Andrés Delfinobda9c3e2018-06-29 06:57:10 -0300705 For objects with custom :meth:`__hash__` methods, note that :func:`hash`
706 truncates the return value based on the bit width of the host machine.
707 See :meth:`__hash__` for details.
Georg Brandl116aa622007-08-15 14:28:22 +0000708
709.. function:: help([object])
710
711 Invoke the built-in help system. (This function is intended for interactive
712 use.) If no argument is given, the interactive help system starts on the
713 interpreter console. If the argument is a string, then the string is looked up
714 as the name of a module, function, class, method, keyword, or documentation
715 topic, and a help page is printed on the console. If the argument is any other
716 kind of object, a help page on the object is generated.
717
Lysandros Nikolaou1aeeaeb2019-03-10 12:30:11 +0100718 Note that if a slash(/) appears in the parameter list of a function, when
719 invoking :func:`help`, it means that the parameters prior to the slash are
720 positional-only. For more info, see
721 :ref:`the FAQ entry on positional-only parameters <faq-positional-only-arguments>`.
722
Christian Heimes9bd667a2008-01-20 15:14:11 +0000723 This function is added to the built-in namespace by the :mod:`site` module.
724
Larry Hastings3732ed22014-03-15 21:13:56 -0700725 .. versionchanged:: 3.4
726 Changes to :mod:`pydoc` and :mod:`inspect` mean that the reported
727 signatures for callables are now more comprehensive and consistent.
728
Georg Brandl116aa622007-08-15 14:28:22 +0000729
730.. function:: hex(x)
731
Manvisha Kodali67ba4fa2017-07-06 22:30:58 +0300732 Convert an integer number to a lowercase hexadecimal string prefixed with
Serhiy Storchakadf00f042018-05-10 16:38:44 +0300733 "0x". If *x* is not a Python :class:`int` object, it has to define an
734 :meth:`__index__` method that returns an integer. Some examples:
Larry Hastings3732ed22014-03-15 21:13:56 -0700735
736 >>> hex(255)
737 '0xff'
738 >>> hex(-42)
739 '-0x2a'
740
Manvisha Kodali67ba4fa2017-07-06 22:30:58 +0300741 If you want to convert an integer number to an uppercase or lower hexadecimal
742 string with prefix or not, you can use either of the following ways:
743
744 >>> '%#x' % 255, '%x' % 255, '%X' % 255
745 ('0xff', 'ff', 'FF')
746 >>> format(255, '#x'), format(255, 'x'), format(255, 'X')
747 ('0xff', 'ff', 'FF')
748 >>> f'{255:#x}', f'{255:x}', f'{255:X}'
749 ('0xff', 'ff', 'FF')
750
751 See also :func:`format` for more information.
Larry Hastings3732ed22014-03-15 21:13:56 -0700752
753 See also :func:`int` for converting a hexadecimal string to an
754 integer using a base of 16.
Georg Brandl116aa622007-08-15 14:28:22 +0000755
Mark Dickinson36cea392009-10-03 10:18:40 +0000756 .. note::
757
758 To obtain a hexadecimal string representation for a float, use the
759 :meth:`float.hex` method.
760
Georg Brandl116aa622007-08-15 14:28:22 +0000761
762.. function:: id(object)
763
Georg Brandlba956ae2007-11-29 17:24:34 +0000764 Return the "identity" of an object. This is an integer which
Georg Brandl116aa622007-08-15 14:28:22 +0000765 is guaranteed to be unique and constant for this object during its lifetime.
Georg Brandl495f7b52009-10-27 15:28:25 +0000766 Two objects with non-overlapping lifetimes may have the same :func:`id`
767 value.
768
Éric Araujof33de712011-05-27 04:42:47 +0200769 .. impl-detail:: This is the address of the object in memory.
Georg Brandl116aa622007-08-15 14:28:22 +0000770
771
Georg Brandlc0902982007-09-12 21:29:27 +0000772.. function:: input([prompt])
773
774 If the *prompt* argument is present, it is written to standard output without
775 a trailing newline. The function then reads a line from input, converts it
776 to a string (stripping a trailing newline), and returns that. When EOF is
777 read, :exc:`EOFError` is raised. Example::
778
Andrew Svetlov439e17f2012-08-12 15:16:42 +0300779 >>> s = input('--> ') # doctest: +SKIP
Georg Brandlc0902982007-09-12 21:29:27 +0000780 --> Monty Python's Flying Circus
Andrew Svetlov439e17f2012-08-12 15:16:42 +0300781 >>> s # doctest: +SKIP
Georg Brandlc0902982007-09-12 21:29:27 +0000782 "Monty Python's Flying Circus"
783
Georg Brandl7b469422007-09-12 21:32:27 +0000784 If the :mod:`readline` module was loaded, then :func:`input` will use it
Georg Brandlc0902982007-09-12 21:29:27 +0000785 to provide elaborate line editing and history features.
786
Steve Dower44f91c32019-06-27 10:47:59 -0700787 .. audit-event:: builtins.input prompt input
Steve Dowerb82e17e2019-05-23 08:45:22 -0700788
Steve Dower60419a72019-06-24 08:42:54 -0700789 Raises an :ref:`auditing event <auditing>` ``builtins.input`` with
Steve Dowerb82e17e2019-05-23 08:45:22 -0700790 argument ``prompt`` before reading input
791
Steve Dower44f91c32019-06-27 10:47:59 -0700792 .. audit-event:: builtins.input/result result input
Steve Dowerb82e17e2019-05-23 08:45:22 -0700793
794 Raises an auditing event ``builtins.input/result`` with the result after
795 successfully reading input.
796
Georg Brandlc0902982007-09-12 21:29:27 +0000797
Louis Sautier3fe89da2018-08-27 12:45:26 +0200798.. class:: int([x])
Georg Brandleb7e8f62014-10-06 13:54:36 +0200799 int(x, base=10)
Georg Brandl116aa622007-08-15 14:28:22 +0000800
Georg Brandleb7e8f62014-10-06 13:54:36 +0200801 Return an integer object constructed from a number or string *x*, or return
Serhiy Storchakadf00f042018-05-10 16:38:44 +0300802 ``0`` if no arguments are given. If *x* defines :meth:`__int__`,
Serhiy Storchakabdbad712019-06-02 00:05:48 +0300803 ``int(x)`` returns ``x.__int__()``. If *x* defines :meth:`__index__`,
804 it returns ``x.__index__()``. If *x* defines :meth:`__trunc__`,
Serhiy Storchakadf00f042018-05-10 16:38:44 +0300805 it returns ``x.__trunc__()``.
806 For floating point numbers, this truncates towards zero.
Chris Jerdonek57491e02012-09-28 00:10:44 -0700807
808 If *x* is not a number or if *base* is given, then *x* must be a string,
809 :class:`bytes`, or :class:`bytearray` instance representing an :ref:`integer
810 literal <integers>` in radix *base*. Optionally, the literal can be
811 preceded by ``+`` or ``-`` (with no space in between) and surrounded by
812 whitespace. A base-n literal consists of the digits 0 to n-1, with ``a``
813 to ``z`` (or ``A`` to ``Z``) having
Serhiy Storchakac7b1a0b2016-11-26 13:43:28 +0200814 values 10 to 35. The default *base* is 10. The allowed values are 0 and 2--36.
Georg Brandl225d3c82008-04-09 18:45:14 +0000815 Base-2, -8, and -16 literals can be optionally prefixed with ``0b``/``0B``,
Georg Brandl1b5ab452009-08-13 07:56:35 +0000816 ``0o``/``0O``, or ``0x``/``0X``, as with integer literals in code. Base 0
817 means to interpret exactly as a code literal, so that the actual base is 2,
Georg Brandl225d3c82008-04-09 18:45:14 +0000818 8, 10, or 16, and so that ``int('010', 0)`` is not legal, while
819 ``int('010')`` is, as well as ``int('010', 8)``.
Georg Brandl116aa622007-08-15 14:28:22 +0000820
821 The integer type is described in :ref:`typesnumeric`.
822
Mark Dickinson07c71362013-01-27 10:17:52 +0000823 .. versionchanged:: 3.4
824 If *base* is not an instance of :class:`int` and the *base* object has a
825 :meth:`base.__index__ <object.__index__>` method, that method is called
826 to obtain an integer for the base. Previous versions used
827 :meth:`base.__int__ <object.__int__>` instead of :meth:`base.__index__
828 <object.__index__>`.
Georg Brandl116aa622007-08-15 14:28:22 +0000829
Brett Cannona721aba2016-09-09 14:57:09 -0700830 .. versionchanged:: 3.6
831 Grouping digits with underscores as in code literals is allowed.
832
Louis Sautier3fe89da2018-08-27 12:45:26 +0200833 .. versionchanged:: 3.7
834 *x* is now a positional-only parameter.
835
Serhiy Storchakabdbad712019-06-02 00:05:48 +0300836 .. versionchanged:: 3.8
837 Falls back to :meth:`__index__` if :meth:`__int__` is not defined.
838
Brett Cannona721aba2016-09-09 14:57:09 -0700839
Georg Brandl116aa622007-08-15 14:28:22 +0000840.. function:: isinstance(object, classinfo)
841
Serhiy Storchaka138ccbb2019-11-12 16:57:03 +0200842 Return ``True`` if the *object* argument is an instance of the *classinfo*
Éric Araujoe8b7eb02011-08-19 02:17:03 +0200843 argument, or of a (direct, indirect or :term:`virtual <abstract base
844 class>`) subclass thereof. If *object* is not
Serhiy Storchaka138ccbb2019-11-12 16:57:03 +0200845 an object of the given type, the function always returns ``False``.
Terry Jan Reedy68b68742015-10-28 03:14:56 -0400846 If *classinfo* is a tuple of type objects (or recursively, other such
Serhiy Storchaka138ccbb2019-11-12 16:57:03 +0200847 tuples), return ``True`` if *object* is an instance of any of the types.
Terry Jan Reedy68b68742015-10-28 03:14:56 -0400848 If *classinfo* is not a type or tuple of types and such tuples,
Georg Brandl85eb8c12007-08-31 16:33:38 +0000849 a :exc:`TypeError` exception is raised.
Georg Brandl116aa622007-08-15 14:28:22 +0000850
Georg Brandl116aa622007-08-15 14:28:22 +0000851
852.. function:: issubclass(class, classinfo)
853
Serhiy Storchaka138ccbb2019-11-12 16:57:03 +0200854 Return ``True`` if *class* is a subclass (direct, indirect or :term:`virtual
Éric Araujoe8b7eb02011-08-19 02:17:03 +0200855 <abstract base class>`) of *classinfo*. A
Georg Brandl116aa622007-08-15 14:28:22 +0000856 class is considered a subclass of itself. *classinfo* may be a tuple of class
857 objects, in which case every entry in *classinfo* will be checked. In any other
858 case, a :exc:`TypeError` exception is raised.
859
Georg Brandl116aa622007-08-15 14:28:22 +0000860
Georg Brandl036490d2009-05-17 13:00:36 +0000861.. function:: iter(object[, sentinel])
Georg Brandl116aa622007-08-15 14:28:22 +0000862
Georg Brandl036490d2009-05-17 13:00:36 +0000863 Return an :term:`iterator` object. The first argument is interpreted very
864 differently depending on the presence of the second argument. Without a
865 second argument, *object* must be a collection object which supports the
866 iteration protocol (the :meth:`__iter__` method), or it must support the
867 sequence protocol (the :meth:`__getitem__` method with integer arguments
868 starting at ``0``). If it does not support either of those protocols,
869 :exc:`TypeError` is raised. If the second argument, *sentinel*, is given,
870 then *object* must be a callable object. The iterator created in this case
Ezio Melotti7fa82222012-10-12 13:42:08 +0300871 will call *object* with no arguments for each call to its
872 :meth:`~iterator.__next__` method; if the value returned is equal to
873 *sentinel*, :exc:`StopIteration` will be raised, otherwise the value will
874 be returned.
Georg Brandl116aa622007-08-15 14:28:22 +0000875
Chris Jerdonek006d9072012-10-12 20:28:26 -0700876 See also :ref:`typeiter`.
877
Chris Randsd378b1f2018-12-24 06:07:17 +0100878 One useful application of the second form of :func:`iter` is to build a
879 block-reader. For example, reading fixed-width blocks from a binary
880 database file until the end of file is reached::
Benjamin Petersonf07d0022009-03-21 17:31:58 +0000881
Chris Randsd378b1f2018-12-24 06:07:17 +0100882 from functools import partial
883 with open('mydata.db', 'rb') as f:
Cristian Ciupitu11fa0e42019-02-21 09:53:06 +0200884 for block in iter(partial(f.read, 64), b''):
Chris Randsd378b1f2018-12-24 06:07:17 +0100885 process_block(block)
Benjamin Petersonf07d0022009-03-21 17:31:58 +0000886
Georg Brandl116aa622007-08-15 14:28:22 +0000887
888.. function:: len(s)
889
890 Return the length (the number of items) of an object. The argument may be a
Terry Jan Reedyf2fb73f2014-06-16 03:05:37 -0400891 sequence (such as a string, bytes, tuple, list, or range) or a collection
892 (such as a dictionary, set, or frozen set).
Georg Brandl116aa622007-08-15 14:28:22 +0000893
Zac Hatfield-Doddsd7c7add2020-01-12 19:04:14 +1000894 .. impl-detail::
895
896 ``len`` raises :exc:`OverflowError` on lengths larger than
897 :data:`sys.maxsize`, such as :class:`range(2 ** 100) <range>`.
898
Georg Brandl116aa622007-08-15 14:28:22 +0000899
Nick Coghlan83c0ae52012-08-21 17:42:52 +1000900.. _func-list:
Georg Brandleb7e8f62014-10-06 13:54:36 +0200901.. class:: list([iterable])
Nick Coghlan83c0ae52012-08-21 17:42:52 +1000902 :noindex:
Georg Brandl116aa622007-08-15 14:28:22 +0000903
Nick Coghlan83c0ae52012-08-21 17:42:52 +1000904 Rather than being a function, :class:`list` is actually a mutable
Chris Jerdonek006d9072012-10-12 20:28:26 -0700905 sequence type, as documented in :ref:`typesseq-list` and :ref:`typesseq`.
Georg Brandl116aa622007-08-15 14:28:22 +0000906
Georg Brandl036490d2009-05-17 13:00:36 +0000907
Georg Brandl116aa622007-08-15 14:28:22 +0000908.. function:: locals()
909
910 Update and return a dictionary representing the current local symbol table.
Benjamin Peterson4ac9ce42009-10-04 14:49:41 +0000911 Free variables are returned by :func:`locals` when it is called in function
Srinivas Reddy Thatiparthy (శ్రీనివాస్ రెడ్డి తాటిపర్తి)1c5fa5a2019-04-02 23:28:50 +0530912 blocks, but not in class blocks. Note that at the module level, :func:`locals`
913 and :func:`globals` are the same dictionary.
Georg Brandl116aa622007-08-15 14:28:22 +0000914
Georg Brandle720c0a2009-04-27 16:20:50 +0000915 .. note::
Georg Brandl036490d2009-05-17 13:00:36 +0000916 The contents of this dictionary should not be modified; changes may not
Benjamin Peterson4ac9ce42009-10-04 14:49:41 +0000917 affect the values of local and free variables used by the interpreter.
Georg Brandl116aa622007-08-15 14:28:22 +0000918
919.. function:: map(function, iterable, ...)
920
Georg Brandl952aea22007-09-04 17:50:40 +0000921 Return an iterator that applies *function* to every item of *iterable*,
922 yielding the results. If additional *iterable* arguments are passed,
923 *function* must take that many arguments and is applied to the items from all
Georg Brandlde2b00e2008-05-05 21:04:12 +0000924 iterables in parallel. With multiple iterables, the iterator stops when the
Raymond Hettingercdf8ba32009-02-19 04:45:07 +0000925 shortest iterable is exhausted. For cases where the function inputs are
926 already arranged into argument tuples, see :func:`itertools.starmap`\.
Georg Brandlde2b00e2008-05-05 21:04:12 +0000927
Georg Brandl116aa622007-08-15 14:28:22 +0000928
Raymond Hettingerf4284e42014-04-02 00:58:47 -0700929.. function:: max(iterable, *[, key, default])
Ezio Melottie0add762012-09-14 06:32:35 +0300930 max(arg1, arg2, *args[, key])
Georg Brandl116aa622007-08-15 14:28:22 +0000931
Ezio Melottie0add762012-09-14 06:32:35 +0300932 Return the largest item in an iterable or the largest of two or more
933 arguments.
934
Raymond Hettinger4d6018f2013-06-24 22:43:02 -0700935 If one positional argument is provided, it should be an :term:`iterable`.
936 The largest item in the iterable is returned. If two or more positional
Raymond Hettingerb30b34c2014-04-03 08:01:22 -0700937 arguments are provided, the largest of the positional arguments is
Raymond Hettinger4d6018f2013-06-24 22:43:02 -0700938 returned.
Georg Brandl116aa622007-08-15 14:28:22 +0000939
Raymond Hettinger4d6018f2013-06-24 22:43:02 -0700940 There are two optional keyword-only arguments. The *key* argument specifies
941 a one-argument ordering function like that used for :meth:`list.sort`. The
942 *default* argument specifies an object to return if the provided iterable is
943 empty. If the iterable is empty and *default* is not provided, a
944 :exc:`ValueError` is raised.
Georg Brandl116aa622007-08-15 14:28:22 +0000945
Georg Brandl682d7e02010-10-06 10:26:05 +0000946 If multiple items are maximal, the function returns the first one
947 encountered. This is consistent with other sort-stability preserving tools
948 such as ``sorted(iterable, key=keyfunc, reverse=True)[0]`` and
Raymond Hettinger476a31e2010-09-14 23:13:42 +0000949 ``heapq.nlargest(1, iterable, key=keyfunc)``.
Georg Brandl116aa622007-08-15 14:28:22 +0000950
Larry Hastings3732ed22014-03-15 21:13:56 -0700951 .. versionadded:: 3.4
952 The *default* keyword-only argument.
953
Alexander Marshalove22072f2018-07-24 10:58:21 +0700954 .. versionchanged:: 3.8
955 The *key* can be ``None``.
956
Éric Araujo9edd9f02011-09-01 23:08:55 +0200957
958.. _func-memoryview:
Terry Jan Reedyee9ff052019-12-30 17:16:43 -0500959.. class:: memoryview(obj)
Benjamin Peterson6dfcb022008-09-10 21:02:02 +0000960 :noindex:
Georg Brandl85eb8c12007-08-31 16:33:38 +0000961
Benjamin Peterson1b25b922008-09-09 22:15:27 +0000962 Return a "memory view" object created from the given argument. See
963 :ref:`typememoryview` for more information.
Georg Brandl85eb8c12007-08-31 16:33:38 +0000964
965
Raymond Hettingerf4284e42014-04-02 00:58:47 -0700966.. function:: min(iterable, *[, key, default])
Ezio Melottie0add762012-09-14 06:32:35 +0300967 min(arg1, arg2, *args[, key])
Georg Brandl116aa622007-08-15 14:28:22 +0000968
Ezio Melottie0add762012-09-14 06:32:35 +0300969 Return the smallest item in an iterable or the smallest of two or more
970 arguments.
971
Raymond Hettinger4d6018f2013-06-24 22:43:02 -0700972 If one positional argument is provided, it should be an :term:`iterable`.
973 The smallest item in the iterable is returned. If two or more positional
974 arguments are provided, the smallest of the positional arguments is
975 returned.
Georg Brandl116aa622007-08-15 14:28:22 +0000976
Raymond Hettinger4d6018f2013-06-24 22:43:02 -0700977 There are two optional keyword-only arguments. The *key* argument specifies
978 a one-argument ordering function like that used for :meth:`list.sort`. The
979 *default* argument specifies an object to return if the provided iterable is
980 empty. If the iterable is empty and *default* is not provided, a
981 :exc:`ValueError` is raised.
Georg Brandl116aa622007-08-15 14:28:22 +0000982
Georg Brandl682d7e02010-10-06 10:26:05 +0000983 If multiple items are minimal, the function returns the first one
984 encountered. This is consistent with other sort-stability preserving tools
985 such as ``sorted(iterable, key=keyfunc)[0]`` and ``heapq.nsmallest(1,
986 iterable, key=keyfunc)``.
Georg Brandl116aa622007-08-15 14:28:22 +0000987
Larry Hastings3732ed22014-03-15 21:13:56 -0700988 .. versionadded:: 3.4
989 The *default* keyword-only argument.
990
Alexander Marshalove22072f2018-07-24 10:58:21 +0700991 .. versionchanged:: 3.8
992 The *key* can be ``None``.
993
Georg Brandldf48b972014-03-24 09:06:18 +0100994
Georg Brandl116aa622007-08-15 14:28:22 +0000995.. function:: next(iterator[, default])
996
Ezio Melotti7fa82222012-10-12 13:42:08 +0300997 Retrieve the next item from the *iterator* by calling its
998 :meth:`~iterator.__next__` method. If *default* is given, it is returned
999 if the iterator is exhausted, otherwise :exc:`StopIteration` is raised.
Georg Brandl116aa622007-08-15 14:28:22 +00001000
1001
Georg Brandleb7e8f62014-10-06 13:54:36 +02001002.. class:: object()
Georg Brandl116aa622007-08-15 14:28:22 +00001003
Georg Brandl85eb8c12007-08-31 16:33:38 +00001004 Return a new featureless object. :class:`object` is a base for all classes.
Georg Brandl55ac8f02007-09-01 13:51:09 +00001005 It has the methods that are common to all instances of Python classes. This
1006 function does not accept any arguments.
Georg Brandl85eb8c12007-08-31 16:33:38 +00001007
1008 .. note::
1009
Serhiy Storchaka0d196ed2013-10-09 14:02:31 +03001010 :class:`object` does *not* have a :attr:`~object.__dict__`, so you can't
1011 assign arbitrary attributes to an instance of the :class:`object` class.
Georg Brandl116aa622007-08-15 14:28:22 +00001012
Georg Brandl116aa622007-08-15 14:28:22 +00001013
1014.. function:: oct(x)
1015
Manvisha Kodali67ba4fa2017-07-06 22:30:58 +03001016 Convert an integer number to an octal string prefixed with "0o". The result
1017 is a valid Python expression. If *x* is not a Python :class:`int` object, it
1018 has to define an :meth:`__index__` method that returns an integer. For
1019 example:
Georg Brandl116aa622007-08-15 14:28:22 +00001020
Manvisha Kodali67ba4fa2017-07-06 22:30:58 +03001021 >>> oct(8)
1022 '0o10'
1023 >>> oct(-56)
1024 '-0o70'
1025
1026 If you want to convert an integer number to octal string either with prefix
1027 "0o" or not, you can use either of the following ways.
1028
1029 >>> '%#o' % 10, '%o' % 10
1030 ('0o12', '12')
1031 >>> format(10, '#o'), format(10, 'o')
1032 ('0o12', '12')
1033 >>> f'{10:#o}', f'{10:o}'
1034 ('0o12', '12')
1035
1036 See also :func:`format` for more information.
Georg Brandl116aa622007-08-15 14:28:22 +00001037
R David Murray9f0c9402012-08-17 20:33:54 -04001038 .. index::
1039 single: file object; open() built-in function
1040
Ross Lagerwall59142db2011-10-31 20:34:46 +02001041.. function:: open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)
Georg Brandl116aa622007-08-15 14:28:22 +00001042
R David Murray9f0c9402012-08-17 20:33:54 -04001043 Open *file* and return a corresponding :term:`file object`. If the file
R David Murray8eac5752012-08-17 20:38:19 -04001044 cannot be opened, an :exc:`OSError` is raised.
Georg Brandl48310cd2009-01-03 21:18:54 +00001045
Brett Cannon6fa7aad2016-09-06 15:55:02 -07001046 *file* is a :term:`path-like object` giving the pathname (absolute or
1047 relative to the current working directory) of the file to be opened or an
1048 integer file descriptor of the file to be wrapped. (If a file descriptor is
1049 given, it is closed when the returned I/O object is closed, unless *closefd*
1050 is set to ``False``.)
Georg Brandl116aa622007-08-15 14:28:22 +00001051
Mark Summerfieldecff60e2007-12-14 10:07:44 +00001052 *mode* is an optional string that specifies the mode in which the file is
Benjamin Peterson4e4ffb12010-08-30 12:46:09 +00001053 opened. It defaults to ``'r'`` which means open for reading in text mode.
1054 Other common values are ``'w'`` for writing (truncating the file if it
Charles-François Natalib93f9fa2012-05-20 11:41:53 +02001055 already exists), ``'x'`` for exclusive creation and ``'a'`` for appending
1056 (which on *some* Unix systems, means that *all* writes append to the end of
1057 the file regardless of the current seek position). In text mode, if
Victor Stinnerf86a5e82012-06-05 13:43:22 +02001058 *encoding* is not specified the encoding used is platform dependent:
1059 ``locale.getpreferredencoding(False)`` is called to get the current locale
1060 encoding. (For reading and writing raw bytes use binary mode and leave
1061 *encoding* unspecified.) The available modes are:
Georg Brandl116aa622007-08-15 14:28:22 +00001062
Andrés Delfinoa8ddf852018-06-25 03:06:10 -03001063 .. _filemodes:
1064
1065 .. index::
1066 pair: file; modes
1067
Benjamin Petersondd219122008-04-11 21:17:32 +00001068 ========= ===============================================================
1069 Character Meaning
Georg Brandl44ea77b2013-03-28 13:28:44 +01001070 ========= ===============================================================
Benjamin Petersondd219122008-04-11 21:17:32 +00001071 ``'r'`` open for reading (default)
Benjamin Peterson4e4ffb12010-08-30 12:46:09 +00001072 ``'w'`` open for writing, truncating the file first
Charles-François Natalib93f9fa2012-05-20 11:41:53 +02001073 ``'x'`` open for exclusive creation, failing if the file already exists
Benjamin Petersondd219122008-04-11 21:17:32 +00001074 ``'a'`` open for writing, appending to the end of the file if it exists
Georg Brandl7b6ca4a2009-04-27 06:13:55 +00001075 ``'b'`` binary mode
Benjamin Peterson4e4ffb12010-08-30 12:46:09 +00001076 ``'t'`` text mode (default)
Andre Delfinoc1d8c1c2019-09-10 10:04:22 -03001077 ``'+'`` open for updating (reading and writing)
Benjamin Petersondd219122008-04-11 21:17:32 +00001078 ========= ===============================================================
Mark Summerfieldecff60e2007-12-14 10:07:44 +00001079
Benjamin Peterson4e4ffb12010-08-30 12:46:09 +00001080 The default mode is ``'r'`` (open for reading text, synonym of ``'rt'``).
Andre Delfino05184512019-09-10 11:48:05 -03001081 Modes ``'w+'`` and ``'w+b'`` open and truncate the file. Modes ``'r+'``
1082 and ``'r+b'`` open the file with no truncation.
Skip Montanaro1c639602007-09-23 19:49:54 +00001083
Benjamin Peterson6b4fa772010-08-30 13:19:53 +00001084 As mentioned in the :ref:`io-overview`, Python distinguishes between binary
1085 and text I/O. Files opened in binary mode (including ``'b'`` in the *mode*
1086 argument) return contents as :class:`bytes` objects without any decoding. In
1087 text mode (the default, or when ``'t'`` is included in the *mode* argument),
1088 the contents of the file are returned as :class:`str`, the bytes having been
1089 first decoded using a platform-dependent encoding or using the specified
1090 *encoding* if given.
Mark Summerfieldecff60e2007-12-14 10:07:44 +00001091
Victor Stinner942f7a22020-03-04 18:50:22 +01001092 There is an additional mode character permitted, ``'U'``, which no longer
1093 has any effect, and is considered deprecated. It previously enabled
1094 :term:`universal newlines` in text mode, which became the default behaviour
1095 in Python 3.0. Refer to the documentation of the
1096 :ref:`newline <open-newline-parameter>` parameter for further details.
1097
Benjamin Peterson4e4ffb12010-08-30 12:46:09 +00001098 .. note::
Benjamin Peterson4e4ffb12010-08-30 12:46:09 +00001099
Benjamin Peterson6b4fa772010-08-30 13:19:53 +00001100 Python doesn't depend on the underlying operating system's notion of text
Ezio Melottie130a522011-10-19 10:58:56 +03001101 files; all the processing is done by Python itself, and is therefore
Benjamin Peterson6b4fa772010-08-30 13:19:53 +00001102 platform-independent.
Benjamin Peterson4e4ffb12010-08-30 12:46:09 +00001103
Benjamin Peterson6b4fa772010-08-30 13:19:53 +00001104 *buffering* is an optional integer used to set the buffering policy. Pass 0
1105 to switch buffering off (only allowed in binary mode), 1 to select line
1106 buffering (only usable in text mode), and an integer > 1 to indicate the size
Terry Jan Reedydff04f42013-03-16 15:56:27 -04001107 in bytes of a fixed-size chunk buffer. When no *buffering* argument is
1108 given, the default buffering policy works as follows:
Benjamin Peterson4e4ffb12010-08-30 12:46:09 +00001109
Benjamin Peterson6b4fa772010-08-30 13:19:53 +00001110 * Binary files are buffered in fixed-size chunks; the size of the buffer is
1111 chosen using a heuristic trying to determine the underlying device's "block
1112 size" and falling back on :attr:`io.DEFAULT_BUFFER_SIZE`. On many systems,
1113 the buffer will typically be 4096 or 8192 bytes long.
1114
Serhiy Storchaka0d196ed2013-10-09 14:02:31 +03001115 * "Interactive" text files (files for which :meth:`~io.IOBase.isatty`
Serhiy Storchakafbc1c262013-11-29 12:17:13 +02001116 returns ``True``) use line buffering. Other text files use the policy
Serhiy Storchaka0d196ed2013-10-09 14:02:31 +03001117 described above for binary files.
Georg Brandl48310cd2009-01-03 21:18:54 +00001118
Benjamin Petersondd219122008-04-11 21:17:32 +00001119 *encoding* is the name of the encoding used to decode or encode the file.
1120 This should only be used in text mode. The default encoding is platform
Benjamin Peterson52c3bf12009-03-23 02:44:58 +00001121 dependent (whatever :func:`locale.getpreferredencoding` returns), but any
Nick Coghlanb9fdb7a2015-01-07 00:22:00 +10001122 :term:`text encoding` supported by Python
1123 can be used. See the :mod:`codecs` module for
Benjamin Peterson52c3bf12009-03-23 02:44:58 +00001124 the list of supported encodings.
Mark Summerfieldecff60e2007-12-14 10:07:44 +00001125
Benjamin Peterson52c3bf12009-03-23 02:44:58 +00001126 *errors* is an optional string that specifies how encoding and decoding
Martin Panter357ed2e2016-11-21 00:15:20 +00001127 errors are to be handled—this cannot be used in binary mode.
Nick Coghlanb9fdb7a2015-01-07 00:22:00 +10001128 A variety of standard error handlers are available
1129 (listed under :ref:`error-handlers`), though any
Andrew Kuchlingc7b6c502013-06-16 12:58:48 -04001130 error handling name that has been registered with
1131 :func:`codecs.register_error` is also valid. The standard names
Nick Coghlanb9fdb7a2015-01-07 00:22:00 +10001132 include:
Andrew Kuchlingc7b6c502013-06-16 12:58:48 -04001133
1134 * ``'strict'`` to raise a :exc:`ValueError` exception if there is
1135 an encoding error. The default value of ``None`` has the same
1136 effect.
1137
1138 * ``'ignore'`` ignores errors. Note that ignoring encoding errors
1139 can lead to data loss.
1140
1141 * ``'replace'`` causes a replacement marker (such as ``'?'``) to be inserted
1142 where there is malformed data.
1143
1144 * ``'surrogateescape'`` will represent any incorrect bytes as code
1145 points in the Unicode Private Use Area ranging from U+DC80 to
1146 U+DCFF. These private code points will then be turned back into
1147 the same bytes when the ``surrogateescape`` error handler is used
1148 when writing data. This is useful for processing files in an
1149 unknown encoding.
1150
1151 * ``'xmlcharrefreplace'`` is only supported when writing to a file.
1152 Characters not supported by the encoding are replaced with the
1153 appropriate XML character reference ``&#nnn;``.
1154
Serhiy Storchaka07985ef2015-01-25 22:56:57 +02001155 * ``'backslashreplace'`` replaces malformed data by Python's backslashed
1156 escape sequences.
Mark Summerfieldecff60e2007-12-14 10:07:44 +00001157
Serhiy Storchaka166ebc42014-11-25 13:57:17 +02001158 * ``'namereplace'`` (also only supported when writing)
1159 replaces unsupported characters with ``\N{...}`` escape sequences.
1160
R David Murray1b00f252012-08-15 10:43:58 -04001161 .. index::
1162 single: universal newlines; open() built-in function
1163
Nick Coghlan3171df32019-01-28 02:21:11 +10001164 .. _open-newline-parameter:
1165
R David Murray1b00f252012-08-15 10:43:58 -04001166 *newline* controls how :term:`universal newlines` mode works (it only
R David Murrayee0a9452012-08-15 11:05:36 -04001167 applies to text mode). It can be ``None``, ``''``, ``'\n'``, ``'\r'``, and
1168 ``'\r\n'``. It works as follows:
Mark Summerfieldecff60e2007-12-14 10:07:44 +00001169
Georg Brandl296d1be2012-08-14 09:39:07 +02001170 * When reading input from the stream, if *newline* is ``None``, universal
1171 newlines mode is enabled. Lines in the input can end in ``'\n'``,
1172 ``'\r'``, or ``'\r\n'``, and these are translated into ``'\n'`` before
R David Murray1b00f252012-08-15 10:43:58 -04001173 being returned to the caller. If it is ``''``, universal newlines mode is
Georg Brandl296d1be2012-08-14 09:39:07 +02001174 enabled, but line endings are returned to the caller untranslated. If it
1175 has any of the other legal values, input lines are only terminated by the
1176 given string, and the line ending is returned to the caller untranslated.
Benjamin Petersondd219122008-04-11 21:17:32 +00001177
Georg Brandl296d1be2012-08-14 09:39:07 +02001178 * When writing output to the stream, if *newline* is ``None``, any ``'\n'``
1179 characters written are translated to the system default line separator,
1180 :data:`os.linesep`. If *newline* is ``''`` or ``'\n'``, no translation
1181 takes place. If *newline* is any of the other legal values, any ``'\n'``
1182 characters written are translated to the given string.
Benjamin Petersondd219122008-04-11 21:17:32 +00001183
Benjamin Peterson8cad9c72009-03-23 02:38:01 +00001184 If *closefd* is ``False`` and a file descriptor rather than a filename was
1185 given, the underlying file descriptor will be kept open when the file is
Robert Collins933430a2014-10-18 13:32:43 +13001186 closed. If a filename is given *closefd* must be ``True`` (the default)
1187 otherwise an error will be raised.
Benjamin Peterson8cad9c72009-03-23 02:38:01 +00001188
Ross Lagerwall59142db2011-10-31 20:34:46 +02001189 A custom opener can be used by passing a callable as *opener*. The underlying
1190 file descriptor for the file object is then obtained by calling *opener* with
1191 (*file*, *flags*). *opener* must return an open file descriptor (passing
1192 :mod:`os.open` as *opener* results in functionality similar to passing
1193 ``None``).
1194
Victor Stinnerdaf45552013-08-28 00:53:59 +02001195 The newly created file is :ref:`non-inheritable <fd_inheritance>`.
1196
Éric Araujo5bd92702012-11-22 00:13:49 -05001197 The following example uses the :ref:`dir_fd <dir_fd>` parameter of the
Éric Araujo8f423c92012-11-03 17:06:52 -04001198 :func:`os.open` function to open a file relative to a given directory::
1199
1200 >>> import os
Éric Araujo5bd92702012-11-22 00:13:49 -05001201 >>> dir_fd = os.open('somedir', os.O_RDONLY)
1202 >>> def opener(path, flags):
1203 ... return os.open(path, flags, dir_fd=dir_fd)
Éric Araujo8f423c92012-11-03 17:06:52 -04001204 ...
Éric Araujo8f423c92012-11-03 17:06:52 -04001205 >>> with open('spamspam.txt', 'w', opener=opener) as f:
1206 ... print('This will be written to somedir/spamspam.txt', file=f)
1207 ...
Éric Araujo309b0432012-11-03 17:39:45 -04001208 >>> os.close(dir_fd) # don't leak a file descriptor
Éric Araujo8f423c92012-11-03 17:06:52 -04001209
R David Murray9f0c9402012-08-17 20:33:54 -04001210 The type of :term:`file object` returned by the :func:`open` function
R David Murray433ef3b2012-08-17 20:39:21 -04001211 depends on the mode. When :func:`open` is used to open a file in a text
1212 mode (``'w'``, ``'r'``, ``'wt'``, ``'rt'``, etc.), it returns a subclass of
Benjamin Peterson6b4fa772010-08-30 13:19:53 +00001213 :class:`io.TextIOBase` (specifically :class:`io.TextIOWrapper`). When used
1214 to open a file in a binary mode with buffering, the returned class is a
1215 subclass of :class:`io.BufferedIOBase`. The exact class varies: in read
Martin Panter7462b6492015-11-02 03:37:02 +00001216 binary mode, it returns an :class:`io.BufferedReader`; in write binary and
1217 append binary modes, it returns an :class:`io.BufferedWriter`, and in
1218 read/write mode, it returns an :class:`io.BufferedRandom`. When buffering is
Benjamin Peterson6b4fa772010-08-30 13:19:53 +00001219 disabled, the raw stream, a subclass of :class:`io.RawIOBase`,
1220 :class:`io.FileIO`, is returned.
Georg Brandl116aa622007-08-15 14:28:22 +00001221
1222 .. index::
1223 single: line-buffered I/O
1224 single: unbuffered I/O
1225 single: buffer size, I/O
1226 single: I/O control; buffering
Skip Montanaro4d8c1932007-09-23 21:13:45 +00001227 single: binary mode
1228 single: text mode
1229 module: sys
Georg Brandl116aa622007-08-15 14:28:22 +00001230
Benjamin Petersondd219122008-04-11 21:17:32 +00001231 See also the file handling modules, such as, :mod:`fileinput`, :mod:`io`
Benjamin Peterson8cad9c72009-03-23 02:38:01 +00001232 (where :func:`open` is declared), :mod:`os`, :mod:`os.path`, :mod:`tempfile`,
1233 and :mod:`shutil`.
Georg Brandl116aa622007-08-15 14:28:22 +00001234
Steve Dower44f91c32019-06-27 10:47:59 -07001235 .. audit-event:: open file,mode,flags open
Steve Dowerb82e17e2019-05-23 08:45:22 -07001236
1237 The ``mode`` and ``flags`` arguments may have been modified or inferred from
1238 the original call.
1239
Steve Dower39294992016-08-30 21:22:36 -07001240 .. versionchanged::
1241 3.3
Antoine Pitrou62ab10a02011-10-12 20:10:51 +02001242
Steve Dower39294992016-08-30 21:22:36 -07001243 * The *opener* parameter was added.
1244 * The ``'x'`` mode was added.
1245 * :exc:`IOError` used to be raised, it is now an alias of :exc:`OSError`.
1246 * :exc:`FileExistsError` is now raised if the file opened in exclusive
NAKAMURA Osamu29540cd2017-03-25 11:55:08 +09001247 creation mode (``'x'``) already exists.
Steve Dower39294992016-08-30 21:22:36 -07001248
1249 .. versionchanged::
1250 3.4
1251
1252 * The file is now non-inheritable.
Victor Stinnerdaf45552013-08-28 00:53:59 +02001253
Victor Stinner942f7a22020-03-04 18:50:22 +01001254 .. deprecated-removed:: 3.4 3.10
1255
1256 The ``'U'`` mode.
1257
Steve Dower39294992016-08-30 21:22:36 -07001258 .. versionchanged::
1259 3.5
Victor Stinnera766ddf2015-03-26 23:50:57 +01001260
Steve Dower39294992016-08-30 21:22:36 -07001261 * If the system call is interrupted and the signal handler does not raise an
1262 exception, the function now retries the system call instead of raising an
1263 :exc:`InterruptedError` exception (see :pep:`475` for the rationale).
1264 * The ``'namereplace'`` error handler was added.
Georg Brandlf6945182008-02-01 11:56:49 +00001265
Steve Dower39294992016-08-30 21:22:36 -07001266 .. versionchanged::
1267 3.6
1268
1269 * Support added to accept objects implementing :class:`os.PathLike`.
1270 * On Windows, opening a console buffer may return a subclass of
1271 :class:`io.RawIOBase` other than :class:`io.FileIO`.
Brett Cannonb08388d2016-06-09 15:58:06 -07001272
Georg Brandl116aa622007-08-15 14:28:22 +00001273.. function:: ord(c)
1274
Ezio Melottic99c8582011-10-25 09:32:34 +03001275 Given a string representing one Unicode character, return an integer
Nick Coghlaneed67192014-08-17 14:07:53 +10001276 representing the Unicode code point of that character. For example,
Terry Jan Reedy063d48d2016-03-20 21:18:40 -04001277 ``ord('a')`` returns the integer ``97`` and ``ord('€')`` (Euro sign)
1278 returns ``8364``. This is the inverse of :func:`chr`.
Georg Brandlf6945182008-02-01 11:56:49 +00001279
Georg Brandl116aa622007-08-15 14:28:22 +00001280
Ammar Askar87d6cd32019-09-21 00:28:49 -04001281.. function:: pow(base, exp[, mod])
Georg Brandl116aa622007-08-15 14:28:22 +00001282
Ammar Askar87d6cd32019-09-21 00:28:49 -04001283 Return *base* to the power *exp*; if *mod* is present, return *base* to the
1284 power *exp*, modulo *mod* (computed more efficiently than
1285 ``pow(base, exp) % mod``). The two-argument form ``pow(base, exp)`` is
1286 equivalent to using the power operator: ``base**exp``.
Georg Brandl116aa622007-08-15 14:28:22 +00001287
Georg Brandle06de8b2008-05-05 21:42:51 +00001288 The arguments must have numeric types. With mixed operand types, the
1289 coercion rules for binary arithmetic operators apply. For :class:`int`
1290 operands, the result has the same type as the operands (after coercion)
1291 unless the second argument is negative; in that case, all arguments are
1292 converted to float and a float result is delivered. For example, ``10**2``
Mark Dickinsonc5299672019-06-02 10:24:06 +01001293 returns ``100``, but ``10**-2`` returns ``0.01``.
1294
Ammar Askar87d6cd32019-09-21 00:28:49 -04001295 For :class:`int` operands *base* and *exp*, if *mod* is present, *mod* must
1296 also be of integer type and *mod* must be nonzero. If *mod* is present and
1297 *exp* is negative, *base* must be relatively prime to *mod*. In that case,
1298 ``pow(inv_base, -exp, mod)`` is returned, where *inv_base* is an inverse to
1299 *base* modulo *mod*.
Mark Dickinsonc5299672019-06-02 10:24:06 +01001300
1301 Here's an example of computing an inverse for ``38`` modulo ``97``::
1302
Ammar Askar87d6cd32019-09-21 00:28:49 -04001303 >>> pow(38, -1, mod=97)
Mark Dickinsonc5299672019-06-02 10:24:06 +01001304 23
1305 >>> 23 * 38 % 97 == 1
1306 True
1307
1308 .. versionchanged:: 3.8
1309 For :class:`int` operands, the three-argument form of ``pow`` now allows
1310 the second argument to be negative, permitting computation of modular
1311 inverses.
Georg Brandl116aa622007-08-15 14:28:22 +00001312
Mark Dickinsonc691f202020-03-19 18:12:59 +00001313 .. versionchanged:: 3.8
Ammar Askar87d6cd32019-09-21 00:28:49 -04001314 Allow keyword arguments. Formerly, only positional arguments were
1315 supported.
1316
Georg Brandl116aa622007-08-15 14:28:22 +00001317
Ezio Melotti8429b672012-09-14 06:35:09 +03001318.. function:: print(*objects, sep=' ', end='\\n', file=sys.stdout, flush=False)
Georg Brandlf6945182008-02-01 11:56:49 +00001319
Terry Jan Reedy1895f2b2014-10-01 15:37:42 -04001320 Print *objects* to the text stream *file*, separated by *sep* and followed
Berker Peksag61b9ac92017-04-13 15:48:18 +03001321 by *end*. *sep*, *end*, *file* and *flush*, if present, must be given as keyword
Georg Brandlf6945182008-02-01 11:56:49 +00001322 arguments.
1323
1324 All non-keyword arguments are converted to strings like :func:`str` does and
1325 written to the stream, separated by *sep* and followed by *end*. Both *sep*
1326 and *end* must be strings; they can also be ``None``, which means to use the
Ezio Melottie0add762012-09-14 06:32:35 +03001327 default values. If no *objects* are given, :func:`print` will just write
Georg Brandlf6945182008-02-01 11:56:49 +00001328 *end*.
1329
1330 The *file* argument must be an object with a ``write(string)`` method; if it
Terry Jan Reedy1895f2b2014-10-01 15:37:42 -04001331 is not present or ``None``, :data:`sys.stdout` will be used. Since printed
1332 arguments are converted to text strings, :func:`print` cannot be used with
1333 binary mode file objects. For these, use ``file.write(...)`` instead.
1334
1335 Whether output is buffered is usually determined by *file*, but if the
1336 *flush* keyword argument is true, the stream is forcibly flushed.
Georg Brandlbc3b6822012-01-13 19:41:25 +01001337
1338 .. versionchanged:: 3.3
1339 Added the *flush* keyword argument.
Georg Brandlf6945182008-02-01 11:56:49 +00001340
1341
Georg Brandleb7e8f62014-10-06 13:54:36 +02001342.. class:: property(fget=None, fset=None, fdel=None, doc=None)
Georg Brandl116aa622007-08-15 14:28:22 +00001343
Georg Brandl85eb8c12007-08-31 16:33:38 +00001344 Return a property attribute.
Georg Brandl116aa622007-08-15 14:28:22 +00001345
Raymond Hettingerac191ce2014-08-10 10:41:25 -07001346 *fget* is a function for getting an attribute value. *fset* is a function
1347 for setting an attribute value. *fdel* is a function for deleting an attribute
1348 value. And *doc* creates a docstring for the attribute.
1349
1350 A typical use is to define a managed attribute ``x``::
Georg Brandl116aa622007-08-15 14:28:22 +00001351
Éric Araujo28053fb2010-11-22 03:09:19 +00001352 class C:
Alexandre Vassalotti5f8ced22008-05-16 00:03:33 +00001353 def __init__(self):
1354 self._x = None
1355
1356 def getx(self):
1357 return self._x
Raymond Hettingerac191ce2014-08-10 10:41:25 -07001358
Alexandre Vassalotti5f8ced22008-05-16 00:03:33 +00001359 def setx(self, value):
1360 self._x = value
Raymond Hettingerac191ce2014-08-10 10:41:25 -07001361
Alexandre Vassalotti5f8ced22008-05-16 00:03:33 +00001362 def delx(self):
1363 del self._x
Raymond Hettingerac191ce2014-08-10 10:41:25 -07001364
Georg Brandl116aa622007-08-15 14:28:22 +00001365 x = property(getx, setx, delx, "I'm the 'x' property.")
1366
Raymond Hettingerac191ce2014-08-10 10:41:25 -07001367 If *c* is an instance of *C*, ``c.x`` will invoke the getter,
Georg Brandl7528b9b2010-08-02 19:23:34 +00001368 ``c.x = value`` will invoke the setter and ``del c.x`` the deleter.
1369
Georg Brandl116aa622007-08-15 14:28:22 +00001370 If given, *doc* will be the docstring of the property attribute. Otherwise, the
1371 property will copy *fget*'s docstring (if it exists). This makes it possible to
Christian Heimesd8654cf2007-12-02 15:22:16 +00001372 create read-only properties easily using :func:`property` as a :term:`decorator`::
Georg Brandl116aa622007-08-15 14:28:22 +00001373
Éric Araujo28053fb2010-11-22 03:09:19 +00001374 class Parrot:
Georg Brandl116aa622007-08-15 14:28:22 +00001375 def __init__(self):
1376 self._voltage = 100000
1377
1378 @property
1379 def voltage(self):
1380 """Get the current voltage."""
1381 return self._voltage
1382
Raymond Hettingerac191ce2014-08-10 10:41:25 -07001383 The ``@property`` decorator turns the :meth:`voltage` method into a "getter"
1384 for a read-only attribute with the same name, and it sets the docstring for
1385 *voltage* to "Get the current voltage."
Alexandre Vassalotti5f8ced22008-05-16 00:03:33 +00001386
Serhiy Storchaka0d196ed2013-10-09 14:02:31 +03001387 A property object has :attr:`~property.getter`, :attr:`~property.setter`,
1388 and :attr:`~property.deleter` methods usable as decorators that create a
1389 copy of the property with the corresponding accessor function set to the
1390 decorated function. This is best explained with an example::
Alexandre Vassalotti5f8ced22008-05-16 00:03:33 +00001391
Éric Araujo28053fb2010-11-22 03:09:19 +00001392 class C:
Benjamin Peterson206e3072008-10-19 14:07:49 +00001393 def __init__(self):
1394 self._x = None
Alexandre Vassalotti5f8ced22008-05-16 00:03:33 +00001395
1396 @property
1397 def x(self):
1398 """I'm the 'x' property."""
1399 return self._x
1400
1401 @x.setter
1402 def x(self, value):
1403 self._x = value
1404
1405 @x.deleter
1406 def x(self):
1407 del self._x
1408
1409 This code is exactly equivalent to the first example. Be sure to give the
1410 additional functions the same name as the original property (``x`` in this
1411 case.)
1412
Raymond Hettingerac191ce2014-08-10 10:41:25 -07001413 The returned property object also has the attributes ``fget``, ``fset``, and
Alexandre Vassalotti5f8ced22008-05-16 00:03:33 +00001414 ``fdel`` corresponding to the constructor arguments.
Georg Brandl116aa622007-08-15 14:28:22 +00001415
Raymond Hettinger29655df2015-05-15 16:17:05 -07001416 .. versionchanged:: 3.5
1417 The docstrings of property objects are now writeable.
1418
Georg Brandl116aa622007-08-15 14:28:22 +00001419
Nick Coghlan83c0ae52012-08-21 17:42:52 +10001420.. _func-range:
Terry Jan Reedyee9ff052019-12-30 17:16:43 -05001421.. class:: range(stop)
Ezio Melottie0add762012-09-14 06:32:35 +03001422 range(start, stop[, step])
Nick Coghlan83c0ae52012-08-21 17:42:52 +10001423 :noindex:
Georg Brandl116aa622007-08-15 14:28:22 +00001424
Nick Coghlan83c0ae52012-08-21 17:42:52 +10001425 Rather than being a function, :class:`range` is actually an immutable
Chris Jerdonek006d9072012-10-12 20:28:26 -07001426 sequence type, as documented in :ref:`typesseq-range` and :ref:`typesseq`.
Benjamin Peterson878ce382011-11-05 15:17:52 -04001427
Georg Brandl116aa622007-08-15 14:28:22 +00001428
1429.. function:: repr(object)
1430
Georg Brandl68ee3a52008-03-25 07:21:32 +00001431 Return a string containing a printable representation of an object. For many
1432 types, this function makes an attempt to return a string that would yield an
1433 object with the same value when passed to :func:`eval`, otherwise the
1434 representation is a string enclosed in angle brackets that contains the name
1435 of the type of the object together with additional information often
1436 including the name and address of the object. A class can control what this
1437 function returns for its instances by defining a :meth:`__repr__` method.
Georg Brandl116aa622007-08-15 14:28:22 +00001438
1439
1440.. function:: reversed(seq)
1441
Christian Heimes7f044312008-01-06 17:05:40 +00001442 Return a reverse :term:`iterator`. *seq* must be an object which has
1443 a :meth:`__reversed__` method or supports the sequence protocol (the
1444 :meth:`__len__` method and the :meth:`__getitem__` method with integer
1445 arguments starting at ``0``).
Georg Brandl116aa622007-08-15 14:28:22 +00001446
Georg Brandl116aa622007-08-15 14:28:22 +00001447
Mark Dickinson4e12ad12012-09-20 20:51:14 +01001448.. function:: round(number[, ndigits])
Georg Brandl116aa622007-08-15 14:28:22 +00001449
csabella85deefc2017-03-29 17:14:06 -04001450 Return *number* rounded to *ndigits* precision after the decimal
1451 point. If *ndigits* is omitted or is ``None``, it returns the
1452 nearest integer to its input.
Georg Brandl809ddaa2008-07-01 20:39:59 +00001453
1454 For the built-in types supporting :func:`round`, values are rounded to the
Mark Dickinson4e12ad12012-09-20 20:51:14 +01001455 closest multiple of 10 to the power minus *ndigits*; if two multiples are
1456 equally close, rounding is done toward the even choice (so, for example,
1457 both ``round(0.5)`` and ``round(-0.5)`` are ``0``, and ``round(1.5)`` is
Gerrit Holl6003db72017-03-27 23:15:20 +01001458 ``2``). Any integer value is valid for *ndigits* (positive, zero, or
Lisa Roach900c48d2018-05-20 11:00:18 -04001459 negative). The return value is an integer if *ndigits* is omitted or
1460 ``None``.
1461 Otherwise the return value has the same type as *number*.
Christian Heimes072c0f12008-01-03 23:01:04 +00001462
Lisa Roach900c48d2018-05-20 11:00:18 -04001463 For a general Python object ``number``, ``round`` delegates to
1464 ``number.__round__``.
csabella85deefc2017-03-29 17:14:06 -04001465
Mark Dickinsonc4fbcdc2010-07-30 13:13:02 +00001466 .. note::
1467
1468 The behavior of :func:`round` for floats can be surprising: for example,
1469 ``round(2.675, 2)`` gives ``2.67`` instead of the expected ``2.68``.
1470 This is not a bug: it's a result of the fact that most decimal fractions
1471 can't be represented exactly as a float. See :ref:`tut-fp-issues` for
1472 more information.
Georg Brandl116aa622007-08-15 14:28:22 +00001473
Éric Araujo9edd9f02011-09-01 23:08:55 +02001474
1475.. _func-set:
Georg Brandleb7e8f62014-10-06 13:54:36 +02001476.. class:: set([iterable])
Georg Brandl116aa622007-08-15 14:28:22 +00001477 :noindex:
1478
Chris Jerdonekdf3abec2012-11-09 18:57:32 -08001479 Return a new :class:`set` object, optionally with elements taken from
1480 *iterable*. ``set`` is a built-in class. See :class:`set` and
1481 :ref:`types-set` for documentation about this class.
1482
1483 For other containers see the built-in :class:`frozenset`, :class:`list`,
1484 :class:`tuple`, and :class:`dict` classes, as well as the :mod:`collections`
1485 module.
Georg Brandl116aa622007-08-15 14:28:22 +00001486
Georg Brandl116aa622007-08-15 14:28:22 +00001487
1488.. function:: setattr(object, name, value)
1489
1490 This is the counterpart of :func:`getattr`. The arguments are an object, a
1491 string and an arbitrary value. The string may name an existing attribute or a
1492 new attribute. The function assigns the value to the attribute, provided the
1493 object allows it. For example, ``setattr(x, 'foobar', 123)`` is equivalent to
1494 ``x.foobar = 123``.
1495
1496
Georg Brandleb7e8f62014-10-06 13:54:36 +02001497.. class:: slice(stop)
1498 slice(start, stop[, step])
Georg Brandl116aa622007-08-15 14:28:22 +00001499
1500 .. index:: single: Numerical Python
1501
Christian Heimesd8654cf2007-12-02 15:22:16 +00001502 Return a :term:`slice` object representing the set of indices specified by
Georg Brandl116aa622007-08-15 14:28:22 +00001503 ``range(start, stop, step)``. The *start* and *step* arguments default to
Serhiy Storchaka0d196ed2013-10-09 14:02:31 +03001504 ``None``. Slice objects have read-only data attributes :attr:`~slice.start`,
1505 :attr:`~slice.stop` and :attr:`~slice.step` which merely return the argument
1506 values (or their default). They have no other explicit functionality;
1507 however they are used by Numerical Python and other third party extensions.
1508 Slice objects are also generated when extended indexing syntax is used. For
1509 example: ``a[start:stop:step]`` or ``a[start:stop, i]``. See
1510 :func:`itertools.islice` for an alternate version that returns an iterator.
Georg Brandl116aa622007-08-15 14:28:22 +00001511
1512
Łukasz Rogalskibe37beb2017-07-14 21:23:39 +02001513.. function:: sorted(iterable, *, key=None, reverse=False)
Georg Brandl116aa622007-08-15 14:28:22 +00001514
1515 Return a new sorted list from the items in *iterable*.
1516
Raymond Hettinger51b9c242008-02-14 13:52:24 +00001517 Has two optional arguments which must be specified as keyword arguments.
Georg Brandl116aa622007-08-15 14:28:22 +00001518
Georg Brandl116aa622007-08-15 14:28:22 +00001519 *key* specifies a function of one argument that is used to extract a comparison
Wolfgang Maier6bdb6f72018-10-15 21:06:53 +02001520 key from each element in *iterable* (for example, ``key=str.lower``). The
1521 default value is ``None`` (compare the elements directly).
Georg Brandl116aa622007-08-15 14:28:22 +00001522
1523 *reverse* is a boolean value. If set to ``True``, then the list elements are
1524 sorted as if each comparison were reversed.
1525
Benjamin Peterson7ac98ae2010-08-17 17:52:02 +00001526 Use :func:`functools.cmp_to_key` to convert an old-style *cmp* function to a
1527 *key* function.
Georg Brandl116aa622007-08-15 14:28:22 +00001528
Ezio Melotti9b1e92f2014-10-28 12:57:11 +01001529 The built-in :func:`sorted` function is guaranteed to be stable. A sort is
1530 stable if it guarantees not to change the relative order of elements that
1531 compare equal --- this is helpful for sorting in multiple passes (for
1532 example, sort by department, then by salary grade).
1533
Senthil Kumarand03d1d42016-01-01 23:25:58 -08001534 For sorting examples and a brief sorting tutorial, see :ref:`sortinghowto`.
Raymond Hettinger46fca072010-04-02 00:25:45 +00001535
Daisuke Miyakawa0e61e672017-10-12 23:39:43 +09001536.. decorator:: staticmethod
Georg Brandl116aa622007-08-15 14:28:22 +00001537
Daisuke Miyakawa0e61e672017-10-12 23:39:43 +09001538 Transform a method into a static method.
Georg Brandl116aa622007-08-15 14:28:22 +00001539
1540 A static method does not receive an implicit first argument. To declare a static
1541 method, use this idiom::
1542
1543 class C:
1544 @staticmethod
1545 def f(arg1, arg2, ...): ...
1546
Andre Delfino548cb602019-03-25 19:53:43 -03001547 The ``@staticmethod`` form is a function :term:`decorator` -- see
1548 :ref:`function` for details.
Georg Brandl116aa622007-08-15 14:28:22 +00001549
Andre Delfino548cb602019-03-25 19:53:43 -03001550 A static method can be called either on the class (such as ``C.f()``) or on an instance (such
1551 as ``C().f()``).
Georg Brandl116aa622007-08-15 14:28:22 +00001552
Raymond Hettinger90289282011-06-01 16:17:23 -07001553 Static methods in Python are similar to those found in Java or C++. Also see
1554 :func:`classmethod` for a variant that is useful for creating alternate class
1555 constructors.
Georg Brandl116aa622007-08-15 14:28:22 +00001556
Éric Araujo03b95372017-10-12 12:28:55 -04001557 Like all decorators, it is also possible to call ``staticmethod`` as
1558 a regular function and do something with its result. This is needed
1559 in some cases where you need a reference to a function from a class
1560 body and you want to avoid the automatic transformation to instance
cocoatomo2a3260b2018-01-29 17:30:48 +09001561 method. For these cases, use this idiom::
Éric Araujo03b95372017-10-12 12:28:55 -04001562
1563 class C:
1564 builtin_open = staticmethod(open)
1565
Andre Delfino548cb602019-03-25 19:53:43 -03001566 For more information on static methods, see :ref:`types`.
Georg Brandl116aa622007-08-15 14:28:22 +00001567
Chris Jerdonek5fae0e52012-11-20 17:45:51 -08001568
Éric Araujo03b95372017-10-12 12:28:55 -04001569.. index::
1570 single: string; str() (built-in function)
Georg Brandl116aa622007-08-15 14:28:22 +00001571
Nick Coghlan83c0ae52012-08-21 17:42:52 +10001572.. _func-str:
Georg Brandleb7e8f62014-10-06 13:54:36 +02001573.. class:: str(object='')
1574 str(object=b'', encoding='utf-8', errors='strict')
Chris Jerdonekbb4e9412012-11-28 01:38:40 -08001575 :noindex:
Georg Brandl116aa622007-08-15 14:28:22 +00001576
Chris Jerdonekbb4e9412012-11-28 01:38:40 -08001577 Return a :class:`str` version of *object*. See :func:`str` for details.
Georg Brandl48310cd2009-01-03 21:18:54 +00001578
Chris Jerdonekbb4e9412012-11-28 01:38:40 -08001579 ``str`` is the built-in string :term:`class`. For general information
1580 about strings, see :ref:`textseq`.
Georg Brandl116aa622007-08-15 14:28:22 +00001581
1582
Pablo Galindoc4c421d2019-06-06 00:11:46 +01001583.. function:: sum(iterable, /, start=0)
Georg Brandl116aa622007-08-15 14:28:22 +00001584
1585 Sums *start* and the items of an *iterable* from left to right and returns the
Pablo Galindoc4c421d2019-06-06 00:11:46 +01001586 total. The *iterable*'s items are normally numbers, and the start value is not
1587 allowed to be a string.
Georg Brandl116aa622007-08-15 14:28:22 +00001588
Éric Araujo8f9626b2010-11-06 06:30:16 +00001589 For some use cases, there are good alternatives to :func:`sum`.
Raymond Hettingerb3737992010-10-31 21:23:24 +00001590 The preferred, fast way to concatenate a sequence of strings is by calling
1591 ``''.join(sequence)``. To add floating point values with extended precision,
1592 see :func:`math.fsum`\. To concatenate a series of iterables, consider using
1593 :func:`itertools.chain`.
Georg Brandl116aa622007-08-15 14:28:22 +00001594
Raymond Hettinger9dfa0fe2018-09-12 10:54:06 -07001595 .. versionchanged:: 3.8
1596 The *start* parameter can be specified as a keyword argument.
1597
Mark Summerfield1041f742008-02-26 13:27:00 +00001598.. function:: super([type[, object-or-type]])
Georg Brandl116aa622007-08-15 14:28:22 +00001599
Raymond Hettinger4d9a8232009-02-24 23:30:43 +00001600 Return a proxy object that delegates method calls to a parent or sibling
1601 class of *type*. This is useful for accessing inherited methods that have
Raymond Hettingercd81f052019-08-29 00:44:02 -07001602 been overridden in a class.
Raymond Hettinger4d9a8232009-02-24 23:30:43 +00001603
Raymond Hettingercd81f052019-08-29 00:44:02 -07001604 The *object-or-type* determines the :term:`method resolution order`
1605 to be searched. The search starts from the class right after the
1606 *type*.
1607
1608 For example, if :attr:`~class.__mro__` of *object-or-type* is
1609 ``D -> B -> C -> A -> object`` and the value of *type* is ``B``,
1610 then :func:`super` searches ``C -> A -> object``.
1611
1612 The :attr:`~class.__mro__` attribute of the *object-or-type* lists the method
Serhiy Storchaka0d196ed2013-10-09 14:02:31 +03001613 resolution search order used by both :func:`getattr` and :func:`super`. The
1614 attribute is dynamic and can change whenever the inheritance hierarchy is
1615 updated.
Benjamin Peterson3e4f0552008-09-02 00:31:15 +00001616
Raymond Hettinger79d04342009-02-25 00:32:51 +00001617 If the second argument is omitted, the super object returned is unbound. If
Benjamin Peterson9bc93512008-09-22 22:10:59 +00001618 the second argument is an object, ``isinstance(obj, type)`` must be true. If
Benjamin Petersond75fcb42009-02-19 04:22:03 +00001619 the second argument is a type, ``issubclass(type2, type)`` must be true (this
1620 is useful for classmethods).
Georg Brandl116aa622007-08-15 14:28:22 +00001621
Raymond Hettinger0a68b012009-02-25 00:58:47 +00001622 There are two typical use cases for *super*. In a class hierarchy with
1623 single inheritance, *super* can be used to refer to parent classes without
Benjamin Peterson9bc93512008-09-22 22:10:59 +00001624 naming them explicitly, thus making the code more maintainable. This use
Raymond Hettinger0a68b012009-02-25 00:58:47 +00001625 closely parallels the use of *super* in other programming languages.
Georg Brandl48310cd2009-01-03 21:18:54 +00001626
Raymond Hettinger4d9a8232009-02-24 23:30:43 +00001627 The second use case is to support cooperative multiple inheritance in a
Georg Brandl48310cd2009-01-03 21:18:54 +00001628 dynamic execution environment. This use case is unique to Python and is
1629 not found in statically compiled languages or languages that only support
Raymond Hettingerd1258452009-02-26 00:27:18 +00001630 single inheritance. This makes it possible to implement "diamond diagrams"
Benjamin Peterson9bc93512008-09-22 22:10:59 +00001631 where multiple base classes implement the same method. Good design dictates
1632 that this method have the same calling signature in every case (because the
Raymond Hettinger4d9a8232009-02-24 23:30:43 +00001633 order of calls is determined at runtime, because that order adapts
1634 to changes in the class hierarchy, and because that order can include
1635 sibling classes that are unknown prior to runtime).
Benjamin Peterson9bc93512008-09-22 22:10:59 +00001636
1637 For both use cases, a typical superclass call looks like this::
Georg Brandl116aa622007-08-15 14:28:22 +00001638
1639 class C(B):
Mark Summerfield1041f742008-02-26 13:27:00 +00001640 def method(self, arg):
Georg Brandl036490d2009-05-17 13:00:36 +00001641 super().method(arg) # This does the same thing as:
1642 # super(C, self).method(arg)
Georg Brandl116aa622007-08-15 14:28:22 +00001643
Raymond Hettinger15ccc4f2019-09-25 08:13:19 -07001644 In addition to method lookups, :func:`super` also works for attribute
Géry Ogamd6727912019-11-21 03:10:19 +01001645 lookups. One possible use case for this is calling :term:`descriptors <descriptor>`
Raymond Hettinger15ccc4f2019-09-25 08:13:19 -07001646 in a parent or sibling class.
1647
Georg Brandl116aa622007-08-15 14:28:22 +00001648 Note that :func:`super` is implemented as part of the binding process for
Mark Summerfield1041f742008-02-26 13:27:00 +00001649 explicit dotted attribute lookups such as ``super().__getitem__(name)``.
Benjamin Peterson9bc93512008-09-22 22:10:59 +00001650 It does so by implementing its own :meth:`__getattribute__` method for searching
Raymond Hettinger4d9a8232009-02-24 23:30:43 +00001651 classes in a predictable order that supports cooperative multiple inheritance.
Georg Brandl116aa622007-08-15 14:28:22 +00001652 Accordingly, :func:`super` is undefined for implicit lookups using statements or
Raymond Hettinger518d8da2008-12-06 11:44:00 +00001653 operators such as ``super()[name]``.
1654
Nick Coghlan7fc570a2012-05-20 02:34:13 +10001655 Also note that, aside from the zero argument form, :func:`super` is not
1656 limited to use inside methods. The two argument form specifies the
1657 arguments exactly and makes the appropriate references. The zero
1658 argument form only works inside a class definition, as the compiler fills
1659 in the necessary details to correctly retrieve the class being defined,
1660 as well as accessing the current instance for ordinary methods.
Georg Brandl116aa622007-08-15 14:28:22 +00001661
Raymond Hettinger90289282011-06-01 16:17:23 -07001662 For practical suggestions on how to design cooperative classes using
1663 :func:`super`, see `guide to using super()
Georg Brandl5d941342016-02-26 19:37:12 +01001664 <https://rhettinger.wordpress.com/2011/05/26/super-considered-super/>`_.
Raymond Hettinger90289282011-06-01 16:17:23 -07001665
Georg Brandl116aa622007-08-15 14:28:22 +00001666
Nick Coghlan83c0ae52012-08-21 17:42:52 +10001667.. _func-tuple:
Terry Jan Reedyee9ff052019-12-30 17:16:43 -05001668.. class:: tuple([iterable])
Nick Coghlan83c0ae52012-08-21 17:42:52 +10001669 :noindex:
Georg Brandl116aa622007-08-15 14:28:22 +00001670
Nick Coghlan83c0ae52012-08-21 17:42:52 +10001671 Rather than being a function, :class:`tuple` is actually an immutable
Chris Jerdonek006d9072012-10-12 20:28:26 -07001672 sequence type, as documented in :ref:`typesseq-tuple` and :ref:`typesseq`.
Georg Brandl116aa622007-08-15 14:28:22 +00001673
1674
Georg Brandleb7e8f62014-10-06 13:54:36 +02001675.. class:: type(object)
1676 type(name, bases, dict)
Georg Brandl116aa622007-08-15 14:28:22 +00001677
1678 .. index:: object: type
1679
Ezio Melotti837cd062012-10-24 23:06:25 +03001680 With one argument, return the type of an *object*. The return value is a
Serhiy Storchaka0d196ed2013-10-09 14:02:31 +03001681 type object and generally the same object as returned by
1682 :attr:`object.__class__ <instance.__class__>`.
Georg Brandl116aa622007-08-15 14:28:22 +00001683
Georg Brandl85eb8c12007-08-31 16:33:38 +00001684 The :func:`isinstance` built-in function is recommended for testing the type
1685 of an object, because it takes subclasses into account.
1686
Georg Brandl116aa622007-08-15 14:28:22 +00001687
Ezio Melotti837cd062012-10-24 23:06:25 +03001688 With three arguments, return a new type object. This is essentially a
1689 dynamic form of the :keyword:`class` statement. The *name* string is the
Martin Panterbae5d812016-06-18 03:57:31 +00001690 class name and becomes the :attr:`~definition.__name__` attribute; the *bases*
Serhiy Storchaka0d196ed2013-10-09 14:02:31 +03001691 tuple itemizes the base classes and becomes the :attr:`~class.__bases__`
1692 attribute; and the *dict* dictionary is the namespace containing definitions
R David Murraydd4fcf52016-06-02 20:05:43 -04001693 for class body and is copied to a standard dictionary to become the
1694 :attr:`~object.__dict__` attribute. For example, the following two
1695 statements create identical :class:`type` objects:
Georg Brandl116aa622007-08-15 14:28:22 +00001696
Éric Araujo28053fb2010-11-22 03:09:19 +00001697 >>> class X:
Georg Brandl116aa622007-08-15 14:28:22 +00001698 ... a = 1
Georg Brandl48310cd2009-01-03 21:18:54 +00001699 ...
Georg Brandl116aa622007-08-15 14:28:22 +00001700 >>> X = type('X', (object,), dict(a=1))
1701
Chris Jerdonek006d9072012-10-12 20:28:26 -07001702 See also :ref:`bltin-type-objects`.
1703
Berker Peksag3f015a62016-08-19 11:04:07 +03001704 .. versionchanged:: 3.6
1705 Subclasses of :class:`type` which don't override ``type.__new__`` may no
1706 longer use the one-argument form to get the type of an object.
Georg Brandl116aa622007-08-15 14:28:22 +00001707
1708.. function:: vars([object])
1709
Serhiy Storchaka0d196ed2013-10-09 14:02:31 +03001710 Return the :attr:`~object.__dict__` attribute for a module, class, instance,
Martin Panterbae5d812016-06-18 03:57:31 +00001711 or any other object with a :attr:`~object.__dict__` attribute.
Benjamin Peterson4ac9ce42009-10-04 14:49:41 +00001712
Martin Panterbae5d812016-06-18 03:57:31 +00001713 Objects such as modules and instances have an updateable :attr:`~object.__dict__`
Raymond Hettingerd7100172013-06-02 10:03:05 -07001714 attribute; however, other objects may have write restrictions on their
Martin Panterbae5d812016-06-18 03:57:31 +00001715 :attr:`~object.__dict__` attributes (for example, classes use a
Berker Peksag37e87e62016-06-24 09:12:01 +03001716 :class:`types.MappingProxyType` to prevent direct dictionary updates).
Georg Brandl116aa622007-08-15 14:28:22 +00001717
Raymond Hettingerd7100172013-06-02 10:03:05 -07001718 Without an argument, :func:`vars` acts like :func:`locals`. Note, the
1719 locals dictionary is only useful for reads since updates to the locals
1720 dictionary are ignored.
1721
Georg Brandl116aa622007-08-15 14:28:22 +00001722
Raymond Hettingerdd1150e2008-03-13 02:39:40 +00001723.. function:: zip(*iterables)
Georg Brandl116aa622007-08-15 14:28:22 +00001724
Georg Brandl48310cd2009-01-03 21:18:54 +00001725 Make an iterator that aggregates elements from each of the iterables.
Raymond Hettingerdd1150e2008-03-13 02:39:40 +00001726
1727 Returns an iterator of tuples, where the *i*-th tuple contains
Georg Brandl952aea22007-09-04 17:50:40 +00001728 the *i*-th element from each of the argument sequences or iterables. The
Raymond Hettingerdd1150e2008-03-13 02:39:40 +00001729 iterator stops when the shortest input iterable is exhausted. With a single
Georg Brandl48310cd2009-01-03 21:18:54 +00001730 iterable argument, it returns an iterator of 1-tuples. With no arguments,
Raymond Hettingerdd1150e2008-03-13 02:39:40 +00001731 it returns an empty iterator. Equivalent to::
1732
Raymond Hettinger2f08df32010-10-10 05:54:39 +00001733 def zip(*iterables):
1734 # zip('ABCD', 'xy') --> Ax By
1735 sentinel = object()
Raymond Hettinger6f45d182011-10-30 15:06:14 -07001736 iterators = [iter(it) for it in iterables]
1737 while iterators:
Raymond Hettinger2f08df32010-10-10 05:54:39 +00001738 result = []
Raymond Hettinger6f45d182011-10-30 15:06:14 -07001739 for it in iterators:
Raymond Hettinger2f08df32010-10-10 05:54:39 +00001740 elem = next(it, sentinel)
1741 if elem is sentinel:
1742 return
1743 result.append(elem)
1744 yield tuple(result)
Georg Brandl116aa622007-08-15 14:28:22 +00001745
Christian Heimes1af737c2008-01-23 08:24:23 +00001746 The left-to-right evaluation order of the iterables is guaranteed. This
1747 makes possible an idiom for clustering a data series into n-length groups
Raymond Hettinger0907a452015-05-13 02:34:38 -07001748 using ``zip(*[iter(s)]*n)``. This repeats the *same* iterator ``n`` times
1749 so that each output tuple has the result of ``n`` calls to the iterator.
1750 This has the effect of dividing the input into n-length chunks.
Christian Heimes1af737c2008-01-23 08:24:23 +00001751
Raymond Hettingerdd1150e2008-03-13 02:39:40 +00001752 :func:`zip` should only be used with unequal length inputs when you don't
1753 care about trailing, unmatched values from the longer iterables. If those
1754 values are important, use :func:`itertools.zip_longest` instead.
Georg Brandl116aa622007-08-15 14:28:22 +00001755
Benjamin Petersonf10a79a2008-10-11 00:49:57 +00001756 :func:`zip` in conjunction with the ``*`` operator can be used to unzip a
1757 list::
1758
1759 >>> x = [1, 2, 3]
1760 >>> y = [4, 5, 6]
1761 >>> zipped = zip(x, y)
Georg Brandl17fe3642008-12-06 14:28:56 +00001762 >>> list(zipped)
Benjamin Petersonf10a79a2008-10-11 00:49:57 +00001763 [(1, 4), (2, 5), (3, 6)]
Georg Brandl17fe3642008-12-06 14:28:56 +00001764 >>> x2, y2 = zip(*zip(x, y))
Benjamin Petersonfa0d7032009-06-01 22:42:33 +00001765 >>> x == list(x2) and y == list(y2)
Benjamin Petersonf10a79a2008-10-11 00:49:57 +00001766 True
1767
Georg Brandl2ee470f2008-07-16 12:55:28 +00001768
Brett Cannoncb4996a2012-08-06 16:34:44 -04001769.. function:: __import__(name, globals=None, locals=None, fromlist=(), level=0)
Georg Brandl48367812008-12-05 15:55:41 +00001770
1771 .. index::
1772 statement: import
1773 module: imp
1774
1775 .. note::
1776
1777 This is an advanced function that is not needed in everyday Python
Éric Araujoe801aa22011-07-29 17:50:58 +02001778 programming, unlike :func:`importlib.import_module`.
Georg Brandl48367812008-12-05 15:55:41 +00001779
Benjamin Peterson6ebe78f2008-12-21 00:06:59 +00001780 This function is invoked by the :keyword:`import` statement. It can be
1781 replaced (by importing the :mod:`builtins` module and assigning to
1782 ``builtins.__import__``) in order to change semantics of the
Serhiy Storchaka2b57c432018-12-19 08:09:46 +02001783 :keyword:`!import` statement, but doing so is **strongly** discouraged as it
Brett Cannonf5ebd262013-08-23 10:58:49 -04001784 is usually simpler to use import hooks (see :pep:`302`) to attain the same
1785 goals and does not cause issues with code which assumes the default import
1786 implementation is in use. Direct use of :func:`__import__` is also
1787 discouraged in favor of :func:`importlib.import_module`.
Georg Brandl48367812008-12-05 15:55:41 +00001788
Benjamin Peterson6ebe78f2008-12-21 00:06:59 +00001789 The function imports the module *name*, potentially using the given *globals*
1790 and *locals* to determine how to interpret the name in a package context.
1791 The *fromlist* gives the names of objects or submodules that should be
1792 imported from the module given by *name*. The standard implementation does
1793 not use its *locals* argument at all, and uses its *globals* only to
1794 determine the package context of the :keyword:`import` statement.
1795
Brett Cannon2b9fd472009-03-15 02:18:41 +00001796 *level* specifies whether to use absolute or relative imports. ``0`` (the
1797 default) means only perform absolute imports. Positive values for
Benjamin Peterson6ebe78f2008-12-21 00:06:59 +00001798 *level* indicate the number of parent directories to search relative to the
Brett Cannon2a082ad2012-04-14 21:58:33 -04001799 directory of the module calling :func:`__import__` (see :pep:`328` for the
1800 details).
Georg Brandl48367812008-12-05 15:55:41 +00001801
1802 When the *name* variable is of the form ``package.module``, normally, the
1803 top-level package (the name up till the first dot) is returned, *not* the
1804 module named by *name*. However, when a non-empty *fromlist* argument is
Benjamin Peterson6ebe78f2008-12-21 00:06:59 +00001805 given, the module named by *name* is returned.
Georg Brandl48367812008-12-05 15:55:41 +00001806
Benjamin Peterson6ebe78f2008-12-21 00:06:59 +00001807 For example, the statement ``import spam`` results in bytecode resembling the
1808 following code::
Georg Brandl48310cd2009-01-03 21:18:54 +00001809
Brett Cannon2b9fd472009-03-15 02:18:41 +00001810 spam = __import__('spam', globals(), locals(), [], 0)
Georg Brandl48367812008-12-05 15:55:41 +00001811
Benjamin Peterson6ebe78f2008-12-21 00:06:59 +00001812 The statement ``import spam.ham`` results in this call::
Georg Brandl48367812008-12-05 15:55:41 +00001813
Brett Cannon2b9fd472009-03-15 02:18:41 +00001814 spam = __import__('spam.ham', globals(), locals(), [], 0)
Benjamin Peterson6ebe78f2008-12-21 00:06:59 +00001815
1816 Note how :func:`__import__` returns the toplevel module here because this is
1817 the object that is bound to a name by the :keyword:`import` statement.
1818
1819 On the other hand, the statement ``from spam.ham import eggs, sausage as
1820 saus`` results in ::
1821
Brett Cannon2b9fd472009-03-15 02:18:41 +00001822 _temp = __import__('spam.ham', globals(), locals(), ['eggs', 'sausage'], 0)
Benjamin Peterson6ebe78f2008-12-21 00:06:59 +00001823 eggs = _temp.eggs
1824 saus = _temp.sausage
1825
1826 Here, the ``spam.ham`` module is returned from :func:`__import__`. From this
1827 object, the names to import are retrieved and assigned to their respective
1828 names.
1829
1830 If you simply want to import a module (potentially within a package) by name,
Éric Araujoe801aa22011-07-29 17:50:58 +02001831 use :func:`importlib.import_module`.
Benjamin Peterson6ebe78f2008-12-21 00:06:59 +00001832
Brett Cannon73df3642012-07-30 18:35:17 -04001833 .. versionchanged:: 3.3
Brett Cannon222d4732012-08-05 20:49:53 -04001834 Negative values for *level* are no longer supported (which also changes
1835 the default value to 0).
Brett Cannon73df3642012-07-30 18:35:17 -04001836
idomicfc72ab62020-03-09 07:57:53 -04001837 .. versionchanged:: 3.9
1838 When the command line options :option:`-E` or :option:`-I` are being used,
1839 the environment variable :envvar:`PYTHONCASEOK` is now ignored.
Georg Brandl48367812008-12-05 15:55:41 +00001840
Georg Brandl116aa622007-08-15 14:28:22 +00001841.. rubric:: Footnotes
1842
Georg Brandl47f27a32009-03-31 16:57:13 +00001843.. [#] Note that the parser only accepts the Unix-style end of line convention.
1844 If you are reading the code from a file, make sure to use newline conversion
1845 mode to convert Windows or Mac-style newlines.