1 | \section{Built-in Functions \label{built-in-funcs}}
|
---|
2 |
|
---|
3 | The Python interpreter has a number of functions built into it that
|
---|
4 | are always available. They are listed here in alphabetical order.
|
---|
5 |
|
---|
6 |
|
---|
7 | \setindexsubitem{(built-in function)}
|
---|
8 |
|
---|
9 | \begin{funcdesc}{__import__}{name\optional{, globals\optional{, locals\optional{, fromlist\optional{, level}}}}}
|
---|
10 | This function is invoked by the \keyword{import}\stindex{import}
|
---|
11 | statement. It mainly exists so that you can replace it with another
|
---|
12 | function that has a compatible interface, in order to change the
|
---|
13 | semantics of the \keyword{import} statement. For examples of why
|
---|
14 | and how you would do this, see the standard library modules
|
---|
15 | \module{ihooks}\refstmodindex{ihooks} and
|
---|
16 | \refmodule{rexec}\refstmodindex{rexec}. See also the built-in
|
---|
17 | module \refmodule{imp}\refbimodindex{imp}, which defines some useful
|
---|
18 | operations out of which you can build your own
|
---|
19 | \function{__import__()} function.
|
---|
20 |
|
---|
21 | For example, the statement \samp{import spam} results in the
|
---|
22 | following call: \code{__import__('spam',} \code{globals(),}
|
---|
23 | \code{locals(), [], -1)}; the statement \samp{from spam.ham import eggs}
|
---|
24 | results in \samp{__import__('spam.ham', globals(), locals(),
|
---|
25 | ['eggs'], -1)}. Note that even though \code{locals()} and
|
---|
26 | \code{['eggs']} are passed in as arguments, the
|
---|
27 | \function{__import__()} function does not set the local variable
|
---|
28 | named \code{eggs}; this is done by subsequent code that is generated
|
---|
29 | for the import statement. (In fact, the standard implementation
|
---|
30 | does not use its \var{locals} argument at all, and uses its
|
---|
31 | \var{globals} only to determine the package context of the
|
---|
32 | \keyword{import} statement.)
|
---|
33 |
|
---|
34 | When the \var{name} variable is of the form \code{package.module},
|
---|
35 | normally, the top-level package (the name up till the first dot) is
|
---|
36 | returned, \emph{not} the module named by \var{name}. However, when
|
---|
37 | a non-empty \var{fromlist} argument is given, the module named by
|
---|
38 | \var{name} is returned. This is done for compatibility with the
|
---|
39 | bytecode generated for the different kinds of import statement; when
|
---|
40 | using \samp{import spam.ham.eggs}, the top-level package \module{spam}
|
---|
41 | must be placed in the importing namespace, but when using \samp{from
|
---|
42 | spam.ham import eggs}, the \code{spam.ham} subpackage must be used
|
---|
43 | to find the \code{eggs} variable. As a workaround for this
|
---|
44 | behavior, use \function{getattr()} to extract the desired
|
---|
45 | components. For example, you could define the following helper:
|
---|
46 |
|
---|
47 | \begin{verbatim}
|
---|
48 | def my_import(name):
|
---|
49 | mod = __import__(name)
|
---|
50 | components = name.split('.')
|
---|
51 | for comp in components[1:]:
|
---|
52 | mod = getattr(mod, comp)
|
---|
53 | return mod
|
---|
54 | \end{verbatim}
|
---|
55 |
|
---|
56 | \var{level} specifies whether to use absolute or relative imports.
|
---|
57 | The default is \code{-1} which indicates both absolute and relative
|
---|
58 | imports will be attempted. \code{0} means only perform absolute imports.
|
---|
59 | Positive values for \var{level} indicate the number of parent directories
|
---|
60 | to search relative to the directory of the module calling
|
---|
61 | \function{__import__}.
|
---|
62 | \versionchanged[The level parameter was added]{2.5}
|
---|
63 | \versionchanged[Keyword support for parameters was added]{2.5}
|
---|
64 | \end{funcdesc}
|
---|
65 |
|
---|
66 | \begin{funcdesc}{abs}{x}
|
---|
67 | Return the absolute value of a number. The argument may be a plain
|
---|
68 | or long integer or a floating point number. If the argument is a
|
---|
69 | complex number, its magnitude is returned.
|
---|
70 | \end{funcdesc}
|
---|
71 |
|
---|
72 | \begin{funcdesc}{all}{iterable}
|
---|
73 | Return True if all elements of the \var{iterable} are true.
|
---|
74 | Equivalent to:
|
---|
75 | \begin{verbatim}
|
---|
76 | def all(iterable):
|
---|
77 | for element in iterable:
|
---|
78 | if not element:
|
---|
79 | return False
|
---|
80 | return True
|
---|
81 | \end{verbatim}
|
---|
82 | \versionadded{2.5}
|
---|
83 | \end{funcdesc}
|
---|
84 |
|
---|
85 | \begin{funcdesc}{any}{iterable}
|
---|
86 | Return True if any element of the \var{iterable} is true.
|
---|
87 | Equivalent to:
|
---|
88 | \begin{verbatim}
|
---|
89 | def any(iterable):
|
---|
90 | for element in iterable:
|
---|
91 | if element:
|
---|
92 | return True
|
---|
93 | return False
|
---|
94 | \end{verbatim}
|
---|
95 | \versionadded{2.5}
|
---|
96 | \end{funcdesc}
|
---|
97 |
|
---|
98 | \begin{funcdesc}{basestring}{}
|
---|
99 | This abstract type is the superclass for \class{str} and \class{unicode}.
|
---|
100 | It cannot be called or instantiated, but it can be used to test whether
|
---|
101 | an object is an instance of \class{str} or \class{unicode}.
|
---|
102 | \code{isinstance(obj, basestring)} is equivalent to
|
---|
103 | \code{isinstance(obj, (str, unicode))}.
|
---|
104 | \versionadded{2.3}
|
---|
105 | \end{funcdesc}
|
---|
106 |
|
---|
107 | \begin{funcdesc}{bool}{\optional{x}}
|
---|
108 | Convert a value to a Boolean, using the standard truth testing
|
---|
109 | procedure. If \var{x} is false or omitted, this returns
|
---|
110 | \constant{False}; otherwise it returns \constant{True}.
|
---|
111 | \class{bool} is also a class, which is a subclass of \class{int}.
|
---|
112 | Class \class{bool} cannot be subclassed further. Its only instances
|
---|
113 | are \constant{False} and \constant{True}.
|
---|
114 |
|
---|
115 | \indexii{Boolean}{type}
|
---|
116 | \versionadded{2.2.1}
|
---|
117 | \versionchanged[If no argument is given, this function returns
|
---|
118 | \constant{False}]{2.3}
|
---|
119 | \end{funcdesc}
|
---|
120 |
|
---|
121 | \begin{funcdesc}{callable}{object}
|
---|
122 | Return true if the \var{object} argument appears callable, false if
|
---|
123 | not. If this returns true, it is still possible that a call fails,
|
---|
124 | but if it is false, calling \var{object} will never succeed. Note
|
---|
125 | that classes are callable (calling a class returns a new instance);
|
---|
126 | class instances are callable if they have a \method{__call__()}
|
---|
127 | method.
|
---|
128 | \end{funcdesc}
|
---|
129 |
|
---|
130 | \begin{funcdesc}{chr}{i}
|
---|
131 | Return a string of one character whose \ASCII{} code is the integer
|
---|
132 | \var{i}. For example, \code{chr(97)} returns the string \code{'a'}.
|
---|
133 | This is the inverse of \function{ord()}. The argument must be in
|
---|
134 | the range [0..255], inclusive; \exception{ValueError} will be raised
|
---|
135 | if \var{i} is outside that range.
|
---|
136 | \end{funcdesc}
|
---|
137 |
|
---|
138 | \begin{funcdesc}{classmethod}{function}
|
---|
139 | Return a class method for \var{function}.
|
---|
140 |
|
---|
141 | A class method receives the class as implicit first argument,
|
---|
142 | just like an instance method receives the instance.
|
---|
143 | To declare a class method, use this idiom:
|
---|
144 |
|
---|
145 | \begin{verbatim}
|
---|
146 | class C:
|
---|
147 | @classmethod
|
---|
148 | def f(cls, arg1, arg2, ...): ...
|
---|
149 | \end{verbatim}
|
---|
150 |
|
---|
151 | The \code{@classmethod} form is a function decorator -- see the description
|
---|
152 | of function definitions in chapter 7 of the
|
---|
153 | \citetitle[../ref/ref.html]{Python Reference Manual} for details.
|
---|
154 |
|
---|
155 | It can be called either on the class (such as \code{C.f()}) or on an
|
---|
156 | instance (such as \code{C().f()}). The instance is ignored except for
|
---|
157 | its class.
|
---|
158 | If a class method is called for a derived class, the derived class
|
---|
159 | object is passed as the implied first argument.
|
---|
160 |
|
---|
161 | Class methods are different than \Cpp{} or Java static methods.
|
---|
162 | If you want those, see \function{staticmethod()} in this section.
|
---|
163 |
|
---|
164 | For more information on class methods, consult the documentation on the
|
---|
165 | standard type hierarchy in chapter 3 of the
|
---|
166 | \citetitle[../ref/types.html]{Python Reference Manual} (at the bottom).
|
---|
167 | \versionadded{2.2}
|
---|
168 | \versionchanged[Function decorator syntax added]{2.4}
|
---|
169 | \end{funcdesc}
|
---|
170 |
|
---|
171 | \begin{funcdesc}{cmp}{x, y}
|
---|
172 | Compare the two objects \var{x} and \var{y} and return an integer
|
---|
173 | according to the outcome. The return value is negative if \code{\var{x}
|
---|
174 | < \var{y}}, zero if \code{\var{x} == \var{y}} and strictly positive if
|
---|
175 | \code{\var{x} > \var{y}}.
|
---|
176 | \end{funcdesc}
|
---|
177 |
|
---|
178 | \begin{funcdesc}{compile}{string, filename, kind\optional{,
|
---|
179 | flags\optional{, dont_inherit}}}
|
---|
180 | Compile the \var{string} into a code object. Code objects can be
|
---|
181 | executed by an \keyword{exec} statement or evaluated by a call to
|
---|
182 | \function{eval()}. The \var{filename} argument should
|
---|
183 | give the file from which the code was read; pass some recognizable value
|
---|
184 | if it wasn't read from a file (\code{'<string>'} is commonly used).
|
---|
185 | The \var{kind} argument specifies what kind of code must be
|
---|
186 | compiled; it can be \code{'exec'} if \var{string} consists of a
|
---|
187 | sequence of statements, \code{'eval'} if it consists of a single
|
---|
188 | expression, or \code{'single'} if it consists of a single
|
---|
189 | interactive statement (in the latter case, expression statements
|
---|
190 | that evaluate to something else than \code{None} will be printed).
|
---|
191 |
|
---|
192 | When compiling multi-line statements, two caveats apply: line
|
---|
193 | endings must be represented by a single newline character
|
---|
194 | (\code{'\e n'}), and the input must be terminated by at least one
|
---|
195 | newline character. If line endings are represented by
|
---|
196 | \code{'\e r\e n'}, use the string \method{replace()} method to
|
---|
197 | change them into \code{'\e n'}.
|
---|
198 |
|
---|
199 | The optional arguments \var{flags} and \var{dont_inherit}
|
---|
200 | (which are new in Python 2.2) control which future statements (see
|
---|
201 | \pep{236}) affect the compilation of \var{string}. If neither is
|
---|
202 | present (or both are zero) the code is compiled with those future
|
---|
203 | statements that are in effect in the code that is calling compile.
|
---|
204 | If the \var{flags} argument is given and \var{dont_inherit} is not
|
---|
205 | (or is zero) then the future statements specified by the \var{flags}
|
---|
206 | argument are used in addition to those that would be used anyway.
|
---|
207 | If \var{dont_inherit} is a non-zero integer then the \var{flags}
|
---|
208 | argument is it -- the future statements in effect around the call to
|
---|
209 | compile are ignored.
|
---|
210 |
|
---|
211 | Future statements are specified by bits which can be bitwise or-ed
|
---|
212 | together to specify multiple statements. The bitfield required to
|
---|
213 | specify a given feature can be found as the \member{compiler_flag}
|
---|
214 | attribute on the \class{_Feature} instance in the
|
---|
215 | \module{__future__} module.
|
---|
216 | \end{funcdesc}
|
---|
217 |
|
---|
218 | \begin{funcdesc}{complex}{\optional{real\optional{, imag}}}
|
---|
219 | Create a complex number with the value \var{real} + \var{imag}*j or
|
---|
220 | convert a string or number to a complex number. If the first
|
---|
221 | parameter is a string, it will be interpreted as a complex number
|
---|
222 | and the function must be called without a second parameter. The
|
---|
223 | second parameter can never be a string.
|
---|
224 | Each argument may be any numeric type (including complex).
|
---|
225 | If \var{imag} is omitted, it defaults to zero and the function
|
---|
226 | serves as a numeric conversion function like \function{int()},
|
---|
227 | \function{long()} and \function{float()}. If both arguments
|
---|
228 | are omitted, returns \code{0j}.
|
---|
229 | \end{funcdesc}
|
---|
230 |
|
---|
231 | \begin{funcdesc}{delattr}{object, name}
|
---|
232 | This is a relative of \function{setattr()}. The arguments are an
|
---|
233 | object and a string. The string must be the name
|
---|
234 | of one of the object's attributes. The function deletes
|
---|
235 | the named attribute, provided the object allows it. For example,
|
---|
236 | \code{delattr(\var{x}, '\var{foobar}')} is equivalent to
|
---|
237 | \code{del \var{x}.\var{foobar}}.
|
---|
238 | \end{funcdesc}
|
---|
239 |
|
---|
240 | \begin{funcdesc}{dict}{\optional{mapping-or-sequence}}
|
---|
241 | Return a new dictionary initialized from an optional positional
|
---|
242 | argument or from a set of keyword arguments.
|
---|
243 | If no arguments are given, return a new empty dictionary.
|
---|
244 | If the positional argument is a mapping object, return a dictionary
|
---|
245 | mapping the same keys to the same values as does the mapping object.
|
---|
246 | Otherwise the positional argument must be a sequence, a container that
|
---|
247 | supports iteration, or an iterator object. The elements of the argument
|
---|
248 | must each also be of one of those kinds, and each must in turn contain
|
---|
249 | exactly two objects. The first is used as a key in the new dictionary,
|
---|
250 | and the second as the key's value. If a given key is seen more than
|
---|
251 | once, the last value associated with it is retained in the new
|
---|
252 | dictionary.
|
---|
253 |
|
---|
254 | If keyword arguments are given, the keywords themselves with their
|
---|
255 | associated values are added as items to the dictionary. If a key
|
---|
256 | is specified both in the positional argument and as a keyword argument,
|
---|
257 | the value associated with the keyword is retained in the dictionary.
|
---|
258 | For example, these all return a dictionary equal to
|
---|
259 | \code{\{"one": 2, "two": 3\}}:
|
---|
260 |
|
---|
261 | \begin{itemize}
|
---|
262 | \item \code{dict(\{'one': 2, 'two': 3\})}
|
---|
263 | \item \code{dict(\{'one': 2, 'two': 3\}.items())}
|
---|
264 | \item \code{dict(\{'one': 2, 'two': 3\}.iteritems())}
|
---|
265 | \item \code{dict(zip(('one', 'two'), (2, 3)))}
|
---|
266 | \item \code{dict([['two', 3], ['one', 2]])}
|
---|
267 | \item \code{dict(one=2, two=3)}
|
---|
268 | \item \code{dict([(['one', 'two'][i-2], i) for i in (2, 3)])}
|
---|
269 | \end{itemize}
|
---|
270 |
|
---|
271 | \versionadded{2.2}
|
---|
272 | \versionchanged[Support for building a dictionary from keyword
|
---|
273 | arguments added]{2.3}
|
---|
274 | \end{funcdesc}
|
---|
275 |
|
---|
276 | \begin{funcdesc}{dir}{\optional{object}}
|
---|
277 | Without arguments, return the list of names in the current local
|
---|
278 | symbol table. With an argument, attempts to return a list of valid
|
---|
279 | attributes for that object. This information is gleaned from the
|
---|
280 | object's \member{__dict__} attribute, if defined, and from the class
|
---|
281 | or type object. The list is not necessarily complete.
|
---|
282 | If the object is a module object, the list contains the names of the
|
---|
283 | module's attributes.
|
---|
284 | If the object is a type or class object,
|
---|
285 | the list contains the names of its attributes,
|
---|
286 | and recursively of the attributes of its bases.
|
---|
287 | Otherwise, the list contains the object's attributes' names,
|
---|
288 | the names of its class's attributes,
|
---|
289 | and recursively of the attributes of its class's base classes.
|
---|
290 | The resulting list is sorted alphabetically.
|
---|
291 | For example:
|
---|
292 |
|
---|
293 | \begin{verbatim}
|
---|
294 | >>> import struct
|
---|
295 | >>> dir()
|
---|
296 | ['__builtins__', '__doc__', '__name__', 'struct']
|
---|
297 | >>> dir(struct)
|
---|
298 | ['__doc__', '__name__', 'calcsize', 'error', 'pack', 'unpack']
|
---|
299 | \end{verbatim}
|
---|
300 |
|
---|
301 | \note{Because \function{dir()} is supplied primarily as a convenience
|
---|
302 | for use at an interactive prompt,
|
---|
303 | it tries to supply an interesting set of names more than it tries to
|
---|
304 | supply a rigorously or consistently defined set of names,
|
---|
305 | and its detailed behavior may change across releases.}
|
---|
306 | \end{funcdesc}
|
---|
307 |
|
---|
308 | \begin{funcdesc}{divmod}{a, b}
|
---|
309 | Take two (non complex) numbers as arguments and return a pair of numbers
|
---|
310 | consisting of their quotient and remainder when using long division. With
|
---|
311 | mixed operand types, the rules for binary arithmetic operators apply. For
|
---|
312 | plain and long integers, the result is the same as
|
---|
313 | \code{(\var{a} // \var{b}, \var{a} \%{} \var{b})}.
|
---|
314 | For floating point numbers the result is \code{(\var{q}, \var{a} \%{}
|
---|
315 | \var{b})}, where \var{q} is usually \code{math.floor(\var{a} /
|
---|
316 | \var{b})} but may be 1 less than that. In any case \code{\var{q} *
|
---|
317 | \var{b} + \var{a} \%{} \var{b}} is very close to \var{a}, if
|
---|
318 | \code{\var{a} \%{} \var{b}} is non-zero it has the same sign as
|
---|
319 | \var{b}, and \code{0 <= abs(\var{a} \%{} \var{b}) < abs(\var{b})}.
|
---|
320 |
|
---|
321 | \versionchanged[Using \function{divmod()} with complex numbers is
|
---|
322 | deprecated]{2.3}
|
---|
323 | \end{funcdesc}
|
---|
324 |
|
---|
325 | \begin{funcdesc}{enumerate}{iterable}
|
---|
326 | Return an enumerate object. \var{iterable} must be a sequence, an
|
---|
327 | iterator, or some other object which supports iteration. The
|
---|
328 | \method{next()} method of the iterator returned by
|
---|
329 | \function{enumerate()} returns a tuple containing a count (from
|
---|
330 | zero) and the corresponding value obtained from iterating over
|
---|
331 | \var{iterable}. \function{enumerate()} is useful for obtaining an
|
---|
332 | indexed series: \code{(0, seq[0])}, \code{(1, seq[1])}, \code{(2,
|
---|
333 | seq[2])}, \ldots.
|
---|
334 | \versionadded{2.3}
|
---|
335 | \end{funcdesc}
|
---|
336 |
|
---|
337 | \begin{funcdesc}{eval}{expression\optional{, globals\optional{, locals}}}
|
---|
338 | The arguments are a string and optional globals and locals. If provided,
|
---|
339 | \var{globals} must be a dictionary. If provided, \var{locals} can be
|
---|
340 | any mapping object. \versionchanged[formerly \var{locals} was required
|
---|
341 | to be a dictionary]{2.4}
|
---|
342 |
|
---|
343 | The \var{expression} argument is parsed and evaluated as a Python
|
---|
344 | expression (technically speaking, a condition list) using the
|
---|
345 | \var{globals} and \var{locals} dictionaries as global and local name
|
---|
346 | space. If the \var{globals} dictionary is present and lacks
|
---|
347 | '__builtins__', the current globals are copied into \var{globals} before
|
---|
348 | \var{expression} is parsed. This means that \var{expression}
|
---|
349 | normally has full access to the standard
|
---|
350 | \refmodule[builtin]{__builtin__} module and restricted environments
|
---|
351 | are propagated. If the \var{locals} dictionary is omitted it defaults to
|
---|
352 | the \var{globals} dictionary. If both dictionaries are omitted, the
|
---|
353 | expression is executed in the environment where \keyword{eval} is
|
---|
354 | called. The return value is the result of the evaluated expression.
|
---|
355 | Syntax errors are reported as exceptions. Example:
|
---|
356 |
|
---|
357 | \begin{verbatim}
|
---|
358 | >>> x = 1
|
---|
359 | >>> print eval('x+1')
|
---|
360 | 2
|
---|
361 | \end{verbatim}
|
---|
362 |
|
---|
363 | This function can also be used to execute arbitrary code objects
|
---|
364 | (such as those created by \function{compile()}). In this case pass
|
---|
365 | a code object instead of a string. The code object must have been
|
---|
366 | compiled passing \code{'eval'} as the \var{kind} argument.
|
---|
367 |
|
---|
368 | Hints: dynamic execution of statements is supported by the
|
---|
369 | \keyword{exec} statement. Execution of statements from a file is
|
---|
370 | supported by the \function{execfile()} function. The
|
---|
371 | \function{globals()} and \function{locals()} functions returns the
|
---|
372 | current global and local dictionary, respectively, which may be
|
---|
373 | useful to pass around for use by \function{eval()} or
|
---|
374 | \function{execfile()}.
|
---|
375 | \end{funcdesc}
|
---|
376 |
|
---|
377 | \begin{funcdesc}{execfile}{filename\optional{, globals\optional{, locals}}}
|
---|
378 | This function is similar to the
|
---|
379 | \keyword{exec} statement, but parses a file instead of a string. It
|
---|
380 | is different from the \keyword{import} statement in that it does not
|
---|
381 | use the module administration --- it reads the file unconditionally
|
---|
382 | and does not create a new module.\footnote{It is used relatively
|
---|
383 | rarely so does not warrant being made into a statement.}
|
---|
384 |
|
---|
385 | The arguments are a file name and two optional dictionaries. The file is
|
---|
386 | parsed and evaluated as a sequence of Python statements (similarly to a
|
---|
387 | module) using the \var{globals} and \var{locals} dictionaries as global and
|
---|
388 | local namespace. If provided, \var{locals} can be any mapping object.
|
---|
389 | \versionchanged[formerly \var{locals} was required to be a dictionary]{2.4}
|
---|
390 | If the \var{locals} dictionary is omitted it defaults to the \var{globals}
|
---|
391 | dictionary. If both dictionaries are omitted, the expression is executed in
|
---|
392 | the environment where \function{execfile()} is called. The return value is
|
---|
393 | \code{None}.
|
---|
394 |
|
---|
395 | \warning{The default \var{locals} act as described for function
|
---|
396 | \function{locals()} below: modifications to the default \var{locals}
|
---|
397 | dictionary should not be attempted. Pass an explicit \var{locals}
|
---|
398 | dictionary if you need to see effects of the code on \var{locals} after
|
---|
399 | function \function{execfile()} returns. \function{execfile()} cannot
|
---|
400 | be used reliably to modify a function's locals.}
|
---|
401 | \end{funcdesc}
|
---|
402 |
|
---|
403 | \begin{funcdesc}{file}{filename\optional{, mode\optional{, bufsize}}}
|
---|
404 | Constructor function for the \class{file} type, described further
|
---|
405 | in section~\ref{bltin-file-objects}, ``\ulink{File
|
---|
406 | Objects}{bltin-file-objects.html}''. The constructor's arguments
|
---|
407 | are the same as those of the \function{open()} built-in function
|
---|
408 | described below.
|
---|
409 |
|
---|
410 | When opening a file, it's preferable to use \function{open()} instead of
|
---|
411 | invoking this constructor directly. \class{file} is more suited to
|
---|
412 | type testing (for example, writing \samp{isinstance(f, file)}).
|
---|
413 |
|
---|
414 | \versionadded{2.2}
|
---|
415 | \end{funcdesc}
|
---|
416 |
|
---|
417 | \begin{funcdesc}{filter}{function, list}
|
---|
418 | Construct a list from those elements of \var{list} for which
|
---|
419 | \var{function} returns true. \var{list} may be either a sequence, a
|
---|
420 | container which supports iteration, or an iterator, If \var{list}
|
---|
421 | is a string or a tuple, the result
|
---|
422 | also has that type; otherwise it is always a list. If \var{function} is
|
---|
423 | \code{None}, the identity function is assumed, that is, all elements of
|
---|
424 | \var{list} that are false are removed.
|
---|
425 |
|
---|
426 | Note that \code{filter(function, \var{list})} is equivalent to
|
---|
427 | \code{[item for item in \var{list} if function(item)]} if function is
|
---|
428 | not \code{None} and \code{[item for item in \var{list} if item]} if
|
---|
429 | function is \code{None}.
|
---|
430 | \end{funcdesc}
|
---|
431 |
|
---|
432 | \begin{funcdesc}{float}{\optional{x}}
|
---|
433 | Convert a string or a number to floating point. If the argument is a
|
---|
434 | string, it must contain a possibly signed decimal or floating point
|
---|
435 | number, possibly embedded in whitespace. Otherwise, the argument may be a plain
|
---|
436 | or long integer or a floating point number, and a floating point
|
---|
437 | number with the same value (within Python's floating point
|
---|
438 | precision) is returned. If no argument is given, returns \code{0.0}.
|
---|
439 |
|
---|
440 | \note{When passing in a string, values for NaN\index{NaN}
|
---|
441 | and Infinity\index{Infinity} may be returned, depending on the
|
---|
442 | underlying C library. The specific set of strings accepted which
|
---|
443 | cause these values to be returned depends entirely on the C library
|
---|
444 | and is known to vary.}
|
---|
445 | \end{funcdesc}
|
---|
446 |
|
---|
447 | \begin{funcdesc}{frozenset}{\optional{iterable}}
|
---|
448 | Return a frozenset object whose elements are taken from \var{iterable}.
|
---|
449 | Frozensets are sets that have no update methods but can be hashed and
|
---|
450 | used as members of other sets or as dictionary keys. The elements of
|
---|
451 | a frozenset must be immutable themselves. To represent sets of sets,
|
---|
452 | the inner sets should also be \class{frozenset} objects. If
|
---|
453 | \var{iterable} is not specified, returns a new empty set,
|
---|
454 | \code{frozenset([])}.
|
---|
455 | \versionadded{2.4}
|
---|
456 | \end{funcdesc}
|
---|
457 |
|
---|
458 | \begin{funcdesc}{getattr}{object, name\optional{, default}}
|
---|
459 | Return the value of the named attributed of \var{object}. \var{name}
|
---|
460 | must be a string. If the string is the name of one of the object's
|
---|
461 | attributes, the result is the value of that attribute. For example,
|
---|
462 | \code{getattr(x, 'foobar')} is equivalent to \code{x.foobar}. If the
|
---|
463 | named attribute does not exist, \var{default} is returned if provided,
|
---|
464 | otherwise \exception{AttributeError} is raised.
|
---|
465 | \end{funcdesc}
|
---|
466 |
|
---|
467 | \begin{funcdesc}{globals}{}
|
---|
468 | Return a dictionary representing the current global symbol table.
|
---|
469 | This is always the dictionary of the current module (inside a
|
---|
470 | function or method, this is the module where it is defined, not the
|
---|
471 | module from which it is called).
|
---|
472 | \end{funcdesc}
|
---|
473 |
|
---|
474 | \begin{funcdesc}{hasattr}{object, name}
|
---|
475 | The arguments are an object and a string. The result is \code{True} if the
|
---|
476 | string is the name of one of the object's attributes, \code{False} if not.
|
---|
477 | (This is implemented by calling \code{getattr(\var{object},
|
---|
478 | \var{name})} and seeing whether it raises an exception or not.)
|
---|
479 | \end{funcdesc}
|
---|
480 |
|
---|
481 | \begin{funcdesc}{hash}{object}
|
---|
482 | Return the hash value of the object (if it has one). Hash values
|
---|
483 | are integers. They are used to quickly compare dictionary
|
---|
484 | keys during a dictionary lookup. Numeric values that compare equal
|
---|
485 | have the same hash value (even if they are of different types, as is
|
---|
486 | the case for 1 and 1.0).
|
---|
487 | \end{funcdesc}
|
---|
488 |
|
---|
489 | \begin{funcdesc}{help}{\optional{object}}
|
---|
490 | Invoke the built-in help system. (This function is intended for
|
---|
491 | interactive use.) If no argument is given, the interactive help
|
---|
492 | system starts on the interpreter console. If the argument is a
|
---|
493 | string, then the string is looked up as the name of a module,
|
---|
494 | function, class, method, keyword, or documentation topic, and a
|
---|
495 | help page is printed on the console. If the argument is any other
|
---|
496 | kind of object, a help page on the object is generated.
|
---|
497 | \versionadded{2.2}
|
---|
498 | \end{funcdesc}
|
---|
499 |
|
---|
500 | \begin{funcdesc}{hex}{x}
|
---|
501 | Convert an integer number (of any size) to a hexadecimal string.
|
---|
502 | The result is a valid Python expression.
|
---|
503 | \versionchanged[Formerly only returned an unsigned literal]{2.4}
|
---|
504 | \end{funcdesc}
|
---|
505 |
|
---|
506 | \begin{funcdesc}{id}{object}
|
---|
507 | Return the ``identity'' of an object. This is an integer (or long
|
---|
508 | integer) which is guaranteed to be unique and constant for this
|
---|
509 | object during its lifetime. Two objects with non-overlapping lifetimes
|
---|
510 | may have the same \function{id()} value. (Implementation
|
---|
511 | note: this is the address of the object.)
|
---|
512 | \end{funcdesc}
|
---|
513 |
|
---|
514 | \begin{funcdesc}{input}{\optional{prompt}}
|
---|
515 | Equivalent to \code{eval(raw_input(\var{prompt}))}.
|
---|
516 | \warning{This function is not safe from user errors! It
|
---|
517 | expects a valid Python expression as input; if the input is not
|
---|
518 | syntactically valid, a \exception{SyntaxError} will be raised.
|
---|
519 | Other exceptions may be raised if there is an error during
|
---|
520 | evaluation. (On the other hand, sometimes this is exactly what you
|
---|
521 | need when writing a quick script for expert use.)}
|
---|
522 |
|
---|
523 | If the \refmodule{readline} module was loaded, then
|
---|
524 | \function{input()} will use it to provide elaborate line editing and
|
---|
525 | history features.
|
---|
526 |
|
---|
527 | Consider using the \function{raw_input()} function for general input
|
---|
528 | from users.
|
---|
529 | \end{funcdesc}
|
---|
530 |
|
---|
531 | \begin{funcdesc}{int}{\optional{x\optional{, radix}}}
|
---|
532 | Convert a string or number to a plain integer. If the argument is a
|
---|
533 | string, it must contain a possibly signed decimal number
|
---|
534 | representable as a Python integer, possibly embedded in whitespace.
|
---|
535 | The \var{radix} parameter gives the base for the
|
---|
536 | conversion and may be any integer in the range [2, 36], or zero. If
|
---|
537 | \var{radix} is zero, the proper radix is guessed based on the
|
---|
538 | contents of string; the interpretation is the same as for integer
|
---|
539 | literals. If \var{radix} is specified and \var{x} is not a string,
|
---|
540 | \exception{TypeError} is raised.
|
---|
541 | Otherwise, the argument may be a plain or
|
---|
542 | long integer or a floating point number. Conversion of floating
|
---|
543 | point numbers to integers truncates (towards zero).
|
---|
544 | If the argument is outside the integer range a long object will
|
---|
545 | be returned instead. If no arguments are given, returns \code{0}.
|
---|
546 | \end{funcdesc}
|
---|
547 |
|
---|
548 | \begin{funcdesc}{isinstance}{object, classinfo}
|
---|
549 | Return true if the \var{object} argument is an instance of the
|
---|
550 | \var{classinfo} argument, or of a (direct or indirect) subclass
|
---|
551 | thereof. Also return true if \var{classinfo} is a type object and
|
---|
552 | \var{object} is an object of that type. If \var{object} is not a
|
---|
553 | class instance or an object of the given type, the function always
|
---|
554 | returns false. If \var{classinfo} is neither a class object nor a
|
---|
555 | type object, it may be a tuple of class or type objects, or may
|
---|
556 | recursively contain other such tuples (other sequence types are not
|
---|
557 | accepted). If \var{classinfo} is not a class, type, or tuple of
|
---|
558 | classes, types, and such tuples, a \exception{TypeError} exception
|
---|
559 | is raised.
|
---|
560 | \versionchanged[Support for a tuple of type information was added]{2.2}
|
---|
561 | \end{funcdesc}
|
---|
562 |
|
---|
563 | \begin{funcdesc}{issubclass}{class, classinfo}
|
---|
564 | Return true if \var{class} is a subclass (direct or indirect) of
|
---|
565 | \var{classinfo}. A class is considered a subclass of itself.
|
---|
566 | \var{classinfo} may be a tuple of class objects, in which case every
|
---|
567 | entry in \var{classinfo} will be checked. In any other case, a
|
---|
568 | \exception{TypeError} exception is raised.
|
---|
569 | \versionchanged[Support for a tuple of type information was added]{2.3}
|
---|
570 | \end{funcdesc}
|
---|
571 |
|
---|
572 | \begin{funcdesc}{iter}{o\optional{, sentinel}}
|
---|
573 | Return an iterator object. The first argument is interpreted very
|
---|
574 | differently depending on the presence of the second argument.
|
---|
575 | Without a second argument, \var{o} must be a collection object which
|
---|
576 | supports the iteration protocol (the \method{__iter__()} method), or
|
---|
577 | it must support the sequence protocol (the \method{__getitem__()}
|
---|
578 | method with integer arguments starting at \code{0}). If it does not
|
---|
579 | support either of those protocols, \exception{TypeError} is raised.
|
---|
580 | If the second argument, \var{sentinel}, is given, then \var{o} must
|
---|
581 | be a callable object. The iterator created in this case will call
|
---|
582 | \var{o} with no arguments for each call to its \method{next()}
|
---|
583 | method; if the value returned is equal to \var{sentinel},
|
---|
584 | \exception{StopIteration} will be raised, otherwise the value will
|
---|
585 | be returned.
|
---|
586 | \versionadded{2.2}
|
---|
587 | \end{funcdesc}
|
---|
588 |
|
---|
589 | \begin{funcdesc}{len}{s}
|
---|
590 | Return the length (the number of items) of an object. The argument
|
---|
591 | may be a sequence (string, tuple or list) or a mapping (dictionary).
|
---|
592 | \end{funcdesc}
|
---|
593 |
|
---|
594 | \begin{funcdesc}{list}{\optional{sequence}}
|
---|
595 | Return a list whose items are the same and in the same order as
|
---|
596 | \var{sequence}'s items. \var{sequence} may be either a sequence, a
|
---|
597 | container that supports iteration, or an iterator object. If
|
---|
598 | \var{sequence} is already a list, a copy is made and returned,
|
---|
599 | similar to \code{\var{sequence}[:]}. For instance,
|
---|
600 | \code{list('abc')} returns \code{['a', 'b', 'c']} and \code{list(
|
---|
601 | (1, 2, 3) )} returns \code{[1, 2, 3]}. If no argument is given,
|
---|
602 | returns a new empty list, \code{[]}.
|
---|
603 | \end{funcdesc}
|
---|
604 |
|
---|
605 | \begin{funcdesc}{locals}{}
|
---|
606 | Update and return a dictionary representing the current local symbol table.
|
---|
607 | \warning{The contents of this dictionary should not be modified;
|
---|
608 | changes may not affect the values of local variables used by the
|
---|
609 | interpreter.}
|
---|
610 | \end{funcdesc}
|
---|
611 |
|
---|
612 | \begin{funcdesc}{long}{\optional{x\optional{, radix}}}
|
---|
613 | Convert a string or number to a long integer. If the argument is a
|
---|
614 | string, it must contain a possibly signed number of
|
---|
615 | arbitrary size, possibly embedded in whitespace. The
|
---|
616 | \var{radix} argument is interpreted in the same way as for
|
---|
617 | \function{int()}, and may only be given when \var{x} is a string.
|
---|
618 | Otherwise, the argument may be a plain or
|
---|
619 | long integer or a floating point number, and a long integer with
|
---|
620 | the same value is returned. Conversion of floating
|
---|
621 | point numbers to integers truncates (towards zero). If no arguments
|
---|
622 | are given, returns \code{0L}.
|
---|
623 | \end{funcdesc}
|
---|
624 |
|
---|
625 | \begin{funcdesc}{map}{function, list, ...}
|
---|
626 | Apply \var{function} to every item of \var{list} and return a list
|
---|
627 | of the results. If additional \var{list} arguments are passed,
|
---|
628 | \var{function} must take that many arguments and is applied to the
|
---|
629 | items of all lists in parallel; if a list is shorter than another it
|
---|
630 | is assumed to be extended with \code{None} items. If \var{function}
|
---|
631 | is \code{None}, the identity function is assumed; if there are
|
---|
632 | multiple list arguments, \function{map()} returns a list consisting
|
---|
633 | of tuples containing the corresponding items from all lists (a kind
|
---|
634 | of transpose operation). The \var{list} arguments may be any kind
|
---|
635 | of sequence; the result is always a list.
|
---|
636 | \end{funcdesc}
|
---|
637 |
|
---|
638 | \begin{funcdesc}{max}{s\optional{, args...}\optional{key}}
|
---|
639 | With a single argument \var{s}, return the largest item of a
|
---|
640 | non-empty sequence (such as a string, tuple or list). With more
|
---|
641 | than one argument, return the largest of the arguments.
|
---|
642 |
|
---|
643 | The optional \var{key} argument specifies a one-argument ordering
|
---|
644 | function like that used for \method{list.sort()}. The \var{key}
|
---|
645 | argument, if supplied, must be in keyword form (for example,
|
---|
646 | \samp{max(a,b,c,key=func)}).
|
---|
647 | \versionchanged[Added support for the optional \var{key} argument]{2.5}
|
---|
648 | \end{funcdesc}
|
---|
649 |
|
---|
650 | \begin{funcdesc}{min}{s\optional{, args...}\optional{key}}
|
---|
651 | With a single argument \var{s}, return the smallest item of a
|
---|
652 | non-empty sequence (such as a string, tuple or list). With more
|
---|
653 | than one argument, return the smallest of the arguments.
|
---|
654 |
|
---|
655 | The optional \var{key} argument specifies a one-argument ordering
|
---|
656 | function like that used for \method{list.sort()}. The \var{key}
|
---|
657 | argument, if supplied, must be in keyword form (for example,
|
---|
658 | \samp{min(a,b,c,key=func)}).
|
---|
659 | \versionchanged[Added support for the optional \var{key} argument]{2.5}
|
---|
660 | \end{funcdesc}
|
---|
661 |
|
---|
662 | \begin{funcdesc}{object}{}
|
---|
663 | Return a new featureless object. \class{object} is a base
|
---|
664 | for all new style classes. It has the methods that are common
|
---|
665 | to all instances of new style classes.
|
---|
666 | \versionadded{2.2}
|
---|
667 |
|
---|
668 | \versionchanged[This function does not accept any arguments.
|
---|
669 | Formerly, it accepted arguments but ignored them]{2.3}
|
---|
670 | \end{funcdesc}
|
---|
671 |
|
---|
672 | \begin{funcdesc}{oct}{x}
|
---|
673 | Convert an integer number (of any size) to an octal string. The
|
---|
674 | result is a valid Python expression.
|
---|
675 | \versionchanged[Formerly only returned an unsigned literal]{2.4}
|
---|
676 | \end{funcdesc}
|
---|
677 |
|
---|
678 | \begin{funcdesc}{open}{filename\optional{, mode\optional{, bufsize}}}
|
---|
679 | Open a file, returning an object of the \class{file} type described
|
---|
680 | in section~\ref{bltin-file-objects}, ``\ulink{File
|
---|
681 | Objects}{bltin-file-objects.html}''. If the file cannot be opened,
|
---|
682 | \exception{IOError} is raised. When opening a file, it's
|
---|
683 | preferable to use \function{open()} instead of invoking the
|
---|
684 | \class{file} constructor directly.
|
---|
685 |
|
---|
686 | The first two arguments are the same as for \code{stdio}'s
|
---|
687 | \cfunction{fopen()}: \var{filename} is the file name to be opened,
|
---|
688 | and \var{mode} is a string indicating how the file is to be opened.
|
---|
689 |
|
---|
690 | The most commonly-used values of \var{mode} are \code{'r'} for
|
---|
691 | reading, \code{'w'} for writing (truncating the file if it already
|
---|
692 | exists), and \code{'a'} for appending (which on \emph{some} \UNIX{}
|
---|
693 | systems means that \emph{all} writes append to the end of the file
|
---|
694 | regardless of the current seek position). If \var{mode} is omitted,
|
---|
695 | it defaults to \code{'r'}. When opening a binary file, you should
|
---|
696 | append \code{'b'} to the \var{mode} value to open the file in binary
|
---|
697 | mode, which will improve portability. (Appending \code{'b'} is
|
---|
698 | useful even on systems that don't treat binary and text files
|
---|
699 | differently, where it serves as documentation.) See below for more
|
---|
700 | possible values of \var{mode}.
|
---|
701 |
|
---|
702 | \index{line-buffered I/O}\index{unbuffered I/O}\index{buffer size, I/O}
|
---|
703 | \index{I/O control!buffering}
|
---|
704 | The optional \var{bufsize} argument specifies the
|
---|
705 | file's desired buffer size: 0 means unbuffered, 1 means line
|
---|
706 | buffered, any other positive value means use a buffer of
|
---|
707 | (approximately) that size. A negative \var{bufsize} means to use
|
---|
708 | the system default, which is usually line buffered for tty
|
---|
709 | devices and fully buffered for other files. If omitted, the system
|
---|
710 | default is used.\footnote{
|
---|
711 | Specifying a buffer size currently has no effect on systems that
|
---|
712 | don't have \cfunction{setvbuf()}. The interface to specify the
|
---|
713 | buffer size is not done using a method that calls
|
---|
714 | \cfunction{setvbuf()}, because that may dump core when called
|
---|
715 | after any I/O has been performed, and there's no reliable way to
|
---|
716 | determine whether this is the case.}
|
---|
717 |
|
---|
718 | Modes \code{'r+'}, \code{'w+'} and \code{'a+'} open the file for
|
---|
719 | updating (note that \code{'w+'} truncates the file). Append
|
---|
720 | \code{'b'} to the mode to open the file in binary mode, on systems
|
---|
721 | that differentiate between binary and text files; on systems
|
---|
722 | that don't have this distinction, adding the \code{'b'} has no effect.
|
---|
723 |
|
---|
724 | In addition to the standard \cfunction{fopen()} values \var{mode}
|
---|
725 | may be \code{'U'} or \code{'rU'}. Python is usually built with universal
|
---|
726 | newline support; supplying \code{'U'} opens the file as a text file, but
|
---|
727 | lines may be terminated by any of the following: the \UNIX{} end-of-line
|
---|
728 | convention \code{'\e n'},
|
---|
729 | the Macintosh convention \code{'\e r'}, or the Windows
|
---|
730 | convention \code{'\e r\e n'}. All of these external representations are seen as
|
---|
731 | \code{'\e n'}
|
---|
732 | by the Python program. If Python is built without universal newline support
|
---|
733 | a \var{mode} with \code{'U'} is the same as normal text mode. Note that
|
---|
734 | file objects so opened also have an attribute called
|
---|
735 | \member{newlines} which has a value of \code{None} (if no newlines
|
---|
736 | have yet been seen), \code{'\e n'}, \code{'\e r'}, \code{'\e r\e n'},
|
---|
737 | or a tuple containing all the newline types seen.
|
---|
738 |
|
---|
739 | Python enforces that the mode, after stripping \code{'U'}, begins with
|
---|
740 | \code{'r'}, \code{'w'} or \code{'a'}.
|
---|
741 |
|
---|
742 | \versionchanged[Restriction on first letter of mode string
|
---|
743 | introduced]{2.5}
|
---|
744 | \end{funcdesc}
|
---|
745 |
|
---|
746 | \begin{funcdesc}{ord}{c}
|
---|
747 | Given a string of length one, return an integer representing the
|
---|
748 | Unicode code point of the character when the argument is a unicode object,
|
---|
749 | or the value of the byte when the argument is an 8-bit string.
|
---|
750 | For example, \code{ord('a')} returns the integer \code{97},
|
---|
751 | \code{ord(u'\e u2020')} returns \code{8224}. This is the inverse of
|
---|
752 | \function{chr()} for 8-bit strings and of \function{unichr()} for unicode
|
---|
753 | objects. If a unicode argument is given and Python was built with
|
---|
754 | UCS2 Unicode, then the character's code point must be in the range
|
---|
755 | [0..65535] inclusive; otherwise the string length is two, and a
|
---|
756 | \exception{TypeError} will be raised.
|
---|
757 | \end{funcdesc}
|
---|
758 |
|
---|
759 | \begin{funcdesc}{pow}{x, y\optional{, z}}
|
---|
760 | Return \var{x} to the power \var{y}; if \var{z} is present, return
|
---|
761 | \var{x} to the power \var{y}, modulo \var{z} (computed more
|
---|
762 | efficiently than \code{pow(\var{x}, \var{y}) \%\ \var{z}}).
|
---|
763 | The two-argument form \code{pow(\var{x}, \var{y})} is equivalent to using
|
---|
764 | the power operator: \code{\var{x}**\var{y}}.
|
---|
765 |
|
---|
766 | The arguments must have numeric types. With mixed operand types, the
|
---|
767 | coercion rules for binary arithmetic operators apply. For int and
|
---|
768 | long int operands, the result has the same type as the operands
|
---|
769 | (after coercion) unless the second argument is negative; in that
|
---|
770 | case, all arguments are converted to float and a float result is
|
---|
771 | delivered. For example, \code{10**2} returns \code{100}, but
|
---|
772 | \code{10**-2} returns \code{0.01}. (This last feature was added in
|
---|
773 | Python 2.2. In Python 2.1 and before, if both arguments were of integer
|
---|
774 | types and the second argument was negative, an exception was raised.)
|
---|
775 | If the second argument is negative, the third argument must be omitted.
|
---|
776 | If \var{z} is present, \var{x} and \var{y} must be of integer types,
|
---|
777 | and \var{y} must be non-negative. (This restriction was added in
|
---|
778 | Python 2.2. In Python 2.1 and before, floating 3-argument \code{pow()}
|
---|
779 | returned platform-dependent results depending on floating-point
|
---|
780 | rounding accidents.)
|
---|
781 | \end{funcdesc}
|
---|
782 |
|
---|
783 | \begin{funcdesc}{property}{\optional{fget\optional{, fset\optional{,
|
---|
784 | fdel\optional{, doc}}}}}
|
---|
785 | Return a property attribute for new-style classes (classes that
|
---|
786 | derive from \class{object}).
|
---|
787 |
|
---|
788 | \var{fget} is a function for getting an attribute value, likewise
|
---|
789 | \var{fset} is a function for setting, and \var{fdel} a function
|
---|
790 | for del'ing, an attribute. Typical use is to define a managed attribute x:
|
---|
791 |
|
---|
792 | \begin{verbatim}
|
---|
793 | class C(object):
|
---|
794 | def __init__(self): self.__x = None
|
---|
795 | def getx(self): return self._x
|
---|
796 | def setx(self, value): self._x = value
|
---|
797 | def delx(self): del self._x
|
---|
798 | x = property(getx, setx, delx, "I'm the 'x' property.")
|
---|
799 | \end{verbatim}
|
---|
800 |
|
---|
801 | If given, \var{doc} will be the docstring of the property attribute.
|
---|
802 | Otherwise, the property will copy \var{fget}'s docstring (if it
|
---|
803 | exists). This makes it possible to create read-only properties
|
---|
804 | easily using \function{property()} as a decorator:
|
---|
805 |
|
---|
806 | \begin{verbatim}
|
---|
807 | class Parrot(object):
|
---|
808 | def __init__(self):
|
---|
809 | self._voltage = 100000
|
---|
810 |
|
---|
811 | @property
|
---|
812 | def voltage(self):
|
---|
813 | """Get the current voltage."""
|
---|
814 | return self._voltage
|
---|
815 | \end{verbatim}
|
---|
816 |
|
---|
817 | turns the \method{voltage()} method into a ``getter'' for a read-only
|
---|
818 | attribute with the same name.
|
---|
819 |
|
---|
820 | \versionadded{2.2}
|
---|
821 | \versionchanged[Use \var{fget}'s docstring if no \var{doc} given]{2.5}
|
---|
822 | \end{funcdesc}
|
---|
823 |
|
---|
824 | \begin{funcdesc}{range}{\optional{start,} stop\optional{, step}}
|
---|
825 | This is a versatile function to create lists containing arithmetic
|
---|
826 | progressions. It is most often used in \keyword{for} loops. The
|
---|
827 | arguments must be plain integers. If the \var{step} argument is
|
---|
828 | omitted, it defaults to \code{1}. If the \var{start} argument is
|
---|
829 | omitted, it defaults to \code{0}. The full form returns a list of
|
---|
830 | plain integers \code{[\var{start}, \var{start} + \var{step},
|
---|
831 | \var{start} + 2 * \var{step}, \ldots]}. If \var{step} is positive,
|
---|
832 | the last element is the largest \code{\var{start} + \var{i} *
|
---|
833 | \var{step}} less than \var{stop}; if \var{step} is negative, the last
|
---|
834 | element is the smallest \code{\var{start} + \var{i} * \var{step}}
|
---|
835 | greater than \var{stop}. \var{step} must not be zero (or else
|
---|
836 | \exception{ValueError} is raised). Example:
|
---|
837 |
|
---|
838 | \begin{verbatim}
|
---|
839 | >>> range(10)
|
---|
840 | [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
|
---|
841 | >>> range(1, 11)
|
---|
842 | [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
|
---|
843 | >>> range(0, 30, 5)
|
---|
844 | [0, 5, 10, 15, 20, 25]
|
---|
845 | >>> range(0, 10, 3)
|
---|
846 | [0, 3, 6, 9]
|
---|
847 | >>> range(0, -10, -1)
|
---|
848 | [0, -1, -2, -3, -4, -5, -6, -7, -8, -9]
|
---|
849 | >>> range(0)
|
---|
850 | []
|
---|
851 | >>> range(1, 0)
|
---|
852 | []
|
---|
853 | \end{verbatim}
|
---|
854 | \end{funcdesc}
|
---|
855 |
|
---|
856 | \begin{funcdesc}{raw_input}{\optional{prompt}}
|
---|
857 | If the \var{prompt} argument is present, it is written to standard output
|
---|
858 | without a trailing newline. The function then reads a line from input,
|
---|
859 | converts it to a string (stripping a trailing newline), and returns that.
|
---|
860 | When \EOF{} is read, \exception{EOFError} is raised. Example:
|
---|
861 |
|
---|
862 | \begin{verbatim}
|
---|
863 | >>> s = raw_input('--> ')
|
---|
864 | --> Monty Python's Flying Circus
|
---|
865 | >>> s
|
---|
866 | "Monty Python's Flying Circus"
|
---|
867 | \end{verbatim}
|
---|
868 |
|
---|
869 | If the \refmodule{readline} module was loaded, then
|
---|
870 | \function{raw_input()} will use it to provide elaborate
|
---|
871 | line editing and history features.
|
---|
872 | \end{funcdesc}
|
---|
873 |
|
---|
874 | \begin{funcdesc}{reduce}{function, sequence\optional{, initializer}}
|
---|
875 | Apply \var{function} of two arguments cumulatively to the items of
|
---|
876 | \var{sequence}, from left to right, so as to reduce the sequence to
|
---|
877 | a single value. For example, \code{reduce(lambda x, y: x+y, [1, 2,
|
---|
878 | 3, 4, 5])} calculates \code{((((1+2)+3)+4)+5)}. The left argument,
|
---|
879 | \var{x}, is the accumulated value and the right argument, \var{y},
|
---|
880 | is the update value from the \var{sequence}. If the optional
|
---|
881 | \var{initializer} is present, it is placed before the items of the
|
---|
882 | sequence in the calculation, and serves as a default when the
|
---|
883 | sequence is empty. If \var{initializer} is not given and
|
---|
884 | \var{sequence} contains only one item, the first item is returned.
|
---|
885 | \end{funcdesc}
|
---|
886 |
|
---|
887 | \begin{funcdesc}{reload}{module}
|
---|
888 | Reload a previously imported \var{module}. The
|
---|
889 | argument must be a module object, so it must have been successfully
|
---|
890 | imported before. This is useful if you have edited the module
|
---|
891 | source file using an external editor and want to try out the new
|
---|
892 | version without leaving the Python interpreter. The return value is
|
---|
893 | the module object (the same as the \var{module} argument).
|
---|
894 |
|
---|
895 | When \code{reload(module)} is executed:
|
---|
896 |
|
---|
897 | \begin{itemize}
|
---|
898 |
|
---|
899 | \item Python modules' code is recompiled and the module-level code
|
---|
900 | reexecuted, defining a new set of objects which are bound to names in
|
---|
901 | the module's dictionary. The \code{init} function of extension
|
---|
902 | modules is not called a second time.
|
---|
903 |
|
---|
904 | \item As with all other objects in Python the old objects are only
|
---|
905 | reclaimed after their reference counts drop to zero.
|
---|
906 |
|
---|
907 | \item The names in the module namespace are updated to point to
|
---|
908 | any new or changed objects.
|
---|
909 |
|
---|
910 | \item Other references to the old objects (such as names external
|
---|
911 | to the module) are not rebound to refer to the new objects and
|
---|
912 | must be updated in each namespace where they occur if that is
|
---|
913 | desired.
|
---|
914 |
|
---|
915 | \end{itemize}
|
---|
916 |
|
---|
917 | There are a number of other caveats:
|
---|
918 |
|
---|
919 | If a module is syntactically correct but its initialization fails,
|
---|
920 | the first \keyword{import} statement for it does not bind its name
|
---|
921 | locally, but does store a (partially initialized) module object in
|
---|
922 | \code{sys.modules}. To reload the module you must first
|
---|
923 | \keyword{import} it again (this will bind the name to the partially
|
---|
924 | initialized module object) before you can \function{reload()} it.
|
---|
925 |
|
---|
926 | When a module is reloaded, its dictionary (containing the module's
|
---|
927 | global variables) is retained. Redefinitions of names will override
|
---|
928 | the old definitions, so this is generally not a problem. If the new
|
---|
929 | version of a module does not define a name that was defined by the
|
---|
930 | old version, the old definition remains. This feature can be used
|
---|
931 | to the module's advantage if it maintains a global table or cache of
|
---|
932 | objects --- with a \keyword{try} statement it can test for the
|
---|
933 | table's presence and skip its initialization if desired:
|
---|
934 |
|
---|
935 | \begin{verbatim}
|
---|
936 | try:
|
---|
937 | cache
|
---|
938 | except NameError:
|
---|
939 | cache = {}
|
---|
940 | \end{verbatim}
|
---|
941 |
|
---|
942 |
|
---|
943 | It is legal though generally not very useful to reload built-in or
|
---|
944 | dynamically loaded modules, except for \refmodule{sys},
|
---|
945 | \refmodule[main]{__main__} and \refmodule[builtin]{__builtin__}. In
|
---|
946 | many cases, however, extension modules are not designed to be
|
---|
947 | initialized more than once, and may fail in arbitrary ways when
|
---|
948 | reloaded.
|
---|
949 |
|
---|
950 | If a module imports objects from another module using \keyword{from}
|
---|
951 | \ldots{} \keyword{import} \ldots{}, calling \function{reload()} for
|
---|
952 | the other module does not redefine the objects imported from it ---
|
---|
953 | one way around this is to re-execute the \keyword{from} statement,
|
---|
954 | another is to use \keyword{import} and qualified names
|
---|
955 | (\var{module}.\var{name}) instead.
|
---|
956 |
|
---|
957 | If a module instantiates instances of a class, reloading the module
|
---|
958 | that defines the class does not affect the method definitions of the
|
---|
959 | instances --- they continue to use the old class definition. The
|
---|
960 | same is true for derived classes.
|
---|
961 | \end{funcdesc}
|
---|
962 |
|
---|
963 | \begin{funcdesc}{repr}{object}
|
---|
964 | Return a string containing a printable representation of an object.
|
---|
965 | This is the same value yielded by conversions (reverse quotes).
|
---|
966 | It is sometimes useful to be able to access this operation as an
|
---|
967 | ordinary function. For many types, this function makes an attempt
|
---|
968 | to return a string that would yield an object with the same value
|
---|
969 | when passed to \function{eval()}.
|
---|
970 | \end{funcdesc}
|
---|
971 |
|
---|
972 | \begin{funcdesc}{reversed}{seq}
|
---|
973 | Return a reverse iterator. \var{seq} must be an object which
|
---|
974 | supports the sequence protocol (the __len__() method and the
|
---|
975 | \method{__getitem__()} method with integer arguments starting at
|
---|
976 | \code{0}).
|
---|
977 | \versionadded{2.4}
|
---|
978 | \end{funcdesc}
|
---|
979 |
|
---|
980 | \begin{funcdesc}{round}{x\optional{, n}}
|
---|
981 | Return the floating point value \var{x} rounded to \var{n} digits
|
---|
982 | after the decimal point. If \var{n} is omitted, it defaults to zero.
|
---|
983 | The result is a floating point number. Values are rounded to the
|
---|
984 | closest multiple of 10 to the power minus \var{n}; if two multiples
|
---|
985 | are equally close, rounding is done away from 0 (so. for example,
|
---|
986 | \code{round(0.5)} is \code{1.0} and \code{round(-0.5)} is \code{-1.0}).
|
---|
987 | \end{funcdesc}
|
---|
988 |
|
---|
989 | \begin{funcdesc}{set}{\optional{iterable}}
|
---|
990 | Return a set whose elements are taken from \var{iterable}. The elements
|
---|
991 | must be immutable. To represent sets of sets, the inner sets should
|
---|
992 | be \class{frozenset} objects. If \var{iterable} is not specified,
|
---|
993 | returns a new empty set, \code{set([])}.
|
---|
994 | \versionadded{2.4}
|
---|
995 | \end{funcdesc}
|
---|
996 |
|
---|
997 | \begin{funcdesc}{setattr}{object, name, value}
|
---|
998 | This is the counterpart of \function{getattr()}. The arguments are an
|
---|
999 | object, a string and an arbitrary value. The string may name an
|
---|
1000 | existing attribute or a new attribute. The function assigns the
|
---|
1001 | value to the attribute, provided the object allows it. For example,
|
---|
1002 | \code{setattr(\var{x}, '\var{foobar}', 123)} is equivalent to
|
---|
1003 | \code{\var{x}.\var{foobar} = 123}.
|
---|
1004 | \end{funcdesc}
|
---|
1005 |
|
---|
1006 | \begin{funcdesc}{slice}{\optional{start,} stop\optional{, step}}
|
---|
1007 | Return a slice object representing the set of indices specified by
|
---|
1008 | \code{range(\var{start}, \var{stop}, \var{step})}. The \var{start}
|
---|
1009 | and \var{step} arguments default to \code{None}. Slice objects have
|
---|
1010 | read-only data attributes \member{start}, \member{stop} and
|
---|
1011 | \member{step} which merely return the argument values (or their
|
---|
1012 | default). They have no other explicit functionality; however they
|
---|
1013 | are used by Numerical Python\index{Numerical Python} and other third
|
---|
1014 | party extensions. Slice objects are also generated when extended
|
---|
1015 | indexing syntax is used. For example: \samp{a[start:stop:step]} or
|
---|
1016 | \samp{a[start:stop, i]}.
|
---|
1017 | \end{funcdesc}
|
---|
1018 |
|
---|
1019 | \begin{funcdesc}{sorted}{iterable\optional{, cmp\optional{,
|
---|
1020 | key\optional{, reverse}}}}
|
---|
1021 | Return a new sorted list from the items in \var{iterable}.
|
---|
1022 |
|
---|
1023 | The optional arguments \var{cmp}, \var{key}, and \var{reverse} have
|
---|
1024 | the same meaning as those for the \method{list.sort()} method
|
---|
1025 | (described in section~\ref{typesseq-mutable}).
|
---|
1026 |
|
---|
1027 | \var{cmp} specifies a custom comparison function of two arguments
|
---|
1028 | (iterable elements) which should return a negative, zero or positive
|
---|
1029 | number depending on whether the first argument is considered smaller
|
---|
1030 | than, equal to, or larger than the second argument:
|
---|
1031 | \samp{\var{cmp}=\keyword{lambda} \var{x},\var{y}:
|
---|
1032 | \function{cmp}(x.lower(), y.lower())}
|
---|
1033 |
|
---|
1034 | \var{key} specifies a function of one argument that is used to
|
---|
1035 | extract a comparison key from each list element:
|
---|
1036 | \samp{\var{key}=\function{str.lower}}
|
---|
1037 |
|
---|
1038 | \var{reverse} is a boolean value. If set to \code{True}, then the
|
---|
1039 | list elements are sorted as if each comparison were reversed.
|
---|
1040 |
|
---|
1041 | In general, the \var{key} and \var{reverse} conversion processes are
|
---|
1042 | much faster than specifying an equivalent \var{cmp} function. This is
|
---|
1043 | because \var{cmp} is called multiple times for each list element while
|
---|
1044 | \var{key} and \var{reverse} touch each element only once.
|
---|
1045 |
|
---|
1046 | \versionadded{2.4}
|
---|
1047 | \end{funcdesc}
|
---|
1048 |
|
---|
1049 | \begin{funcdesc}{staticmethod}{function}
|
---|
1050 | Return a static method for \var{function}.
|
---|
1051 |
|
---|
1052 | A static method does not receive an implicit first argument.
|
---|
1053 | To declare a static method, use this idiom:
|
---|
1054 |
|
---|
1055 | \begin{verbatim}
|
---|
1056 | class C:
|
---|
1057 | @staticmethod
|
---|
1058 | def f(arg1, arg2, ...): ...
|
---|
1059 | \end{verbatim}
|
---|
1060 |
|
---|
1061 | The \code{@staticmethod} form is a function decorator -- see the description
|
---|
1062 | of function definitions in chapter 7 of the
|
---|
1063 | \citetitle[../ref/function.html]{Python Reference Manual} for details.
|
---|
1064 |
|
---|
1065 | It can be called either on the class (such as \code{C.f()}) or on an
|
---|
1066 | instance (such as \code{C().f()}). The instance is ignored except
|
---|
1067 | for its class.
|
---|
1068 |
|
---|
1069 | Static methods in Python are similar to those found in Java or \Cpp.
|
---|
1070 | For a more advanced concept, see \function{classmethod()} in this
|
---|
1071 | section.
|
---|
1072 |
|
---|
1073 | For more information on static methods, consult the documentation on the
|
---|
1074 | standard type hierarchy in chapter 3 of the
|
---|
1075 | \citetitle[../ref/types.html]{Python Reference Manual} (at the bottom).
|
---|
1076 | \versionadded{2.2}
|
---|
1077 | \versionchanged[Function decorator syntax added]{2.4}
|
---|
1078 | \end{funcdesc}
|
---|
1079 |
|
---|
1080 | \begin{funcdesc}{str}{\optional{object}}
|
---|
1081 | Return a string containing a nicely printable representation of an
|
---|
1082 | object. For strings, this returns the string itself. The
|
---|
1083 | difference with \code{repr(\var{object})} is that
|
---|
1084 | \code{str(\var{object})} does not always attempt to return a string
|
---|
1085 | that is acceptable to \function{eval()}; its goal is to return a
|
---|
1086 | printable string. If no argument is given, returns the empty
|
---|
1087 | string, \code{''}.
|
---|
1088 | \end{funcdesc}
|
---|
1089 |
|
---|
1090 | \begin{funcdesc}{sum}{sequence\optional{, start}}
|
---|
1091 | Sums \var{start} and the items of a \var{sequence}, from left to
|
---|
1092 | right, and returns the total. \var{start} defaults to \code{0}.
|
---|
1093 | The \var{sequence}'s items are normally numbers, and are not allowed
|
---|
1094 | to be strings. The fast, correct way to concatenate sequence of
|
---|
1095 | strings is by calling \code{''.join(\var{sequence})}.
|
---|
1096 | Note that \code{sum(range(\var{n}), \var{m})} is equivalent to
|
---|
1097 | \code{reduce(operator.add, range(\var{n}), \var{m})}
|
---|
1098 | \versionadded{2.3}
|
---|
1099 | \end{funcdesc}
|
---|
1100 |
|
---|
1101 | \begin{funcdesc}{super}{type\optional{, object-or-type}}
|
---|
1102 | Return the superclass of \var{type}. If the second argument is omitted
|
---|
1103 | the super object returned is unbound. If the second argument is an
|
---|
1104 | object, \code{isinstance(\var{obj}, \var{type})} must be true. If
|
---|
1105 | the second argument is a type, \code{issubclass(\var{type2},
|
---|
1106 | \var{type})} must be true.
|
---|
1107 | \function{super()} only works for new-style classes.
|
---|
1108 |
|
---|
1109 | A typical use for calling a cooperative superclass method is:
|
---|
1110 | \begin{verbatim}
|
---|
1111 | class C(B):
|
---|
1112 | def meth(self, arg):
|
---|
1113 | super(C, self).meth(arg)
|
---|
1114 | \end{verbatim}
|
---|
1115 |
|
---|
1116 | Note that \function{super} is implemented as part of the binding process for
|
---|
1117 | explicit dotted attribute lookups such as
|
---|
1118 | \samp{super(C, self).__getitem__(name)}. Accordingly, \function{super} is
|
---|
1119 | undefined for implicit lookups using statements or operators such as
|
---|
1120 | \samp{super(C, self)[name]}.
|
---|
1121 | \versionadded{2.2}
|
---|
1122 | \end{funcdesc}
|
---|
1123 |
|
---|
1124 | \begin{funcdesc}{tuple}{\optional{sequence}}
|
---|
1125 | Return a tuple whose items are the same and in the same order as
|
---|
1126 | \var{sequence}'s items. \var{sequence} may be a sequence, a
|
---|
1127 | container that supports iteration, or an iterator object.
|
---|
1128 | If \var{sequence} is already a tuple, it
|
---|
1129 | is returned unchanged. For instance, \code{tuple('abc')} returns
|
---|
1130 | \code{('a', 'b', 'c')} and \code{tuple([1, 2, 3])} returns
|
---|
1131 | \code{(1, 2, 3)}. If no argument is given, returns a new empty
|
---|
1132 | tuple, \code{()}.
|
---|
1133 | \end{funcdesc}
|
---|
1134 |
|
---|
1135 | \begin{funcdesc}{type}{object}
|
---|
1136 | Return the type of an \var{object}. The return value is a
|
---|
1137 | type\obindex{type} object. The \function{isinstance()} built-in
|
---|
1138 | function is recommended for testing the type of an object.
|
---|
1139 |
|
---|
1140 | With three arguments, \function{type} functions as a constructor
|
---|
1141 | as detailed below.
|
---|
1142 | \end{funcdesc}
|
---|
1143 |
|
---|
1144 | \begin{funcdesc}{type}{name, bases, dict}
|
---|
1145 | Return a new type object. This is essentially a dynamic form of the
|
---|
1146 | \keyword{class} statement. The \var{name} string is the class name
|
---|
1147 | and becomes the \member{__name__} attribute; the \var{bases} tuple
|
---|
1148 | itemizes the base classes and becomes the \member{__bases__}
|
---|
1149 | attribute; and the \var{dict} dictionary is the namespace containing
|
---|
1150 | definitions for class body and becomes the \member{__dict__}
|
---|
1151 | attribute. For example, the following two statements create
|
---|
1152 | identical \class{type} objects:
|
---|
1153 |
|
---|
1154 | \begin{verbatim}
|
---|
1155 | >>> class X(object):
|
---|
1156 | ... a = 1
|
---|
1157 | ...
|
---|
1158 | >>> X = type('X', (object,), dict(a=1))
|
---|
1159 | \end{verbatim}
|
---|
1160 | \versionadded{2.2}
|
---|
1161 | \end{funcdesc}
|
---|
1162 |
|
---|
1163 | \begin{funcdesc}{unichr}{i}
|
---|
1164 | Return the Unicode string of one character whose Unicode code is the
|
---|
1165 | integer \var{i}. For example, \code{unichr(97)} returns the string
|
---|
1166 | \code{u'a'}. This is the inverse of \function{ord()} for Unicode
|
---|
1167 | strings. The valid range for the argument depends how Python was
|
---|
1168 | configured -- it may be either UCS2 [0..0xFFFF] or UCS4 [0..0x10FFFF].
|
---|
1169 | \exception{ValueError} is raised otherwise.
|
---|
1170 | \versionadded{2.0}
|
---|
1171 | \end{funcdesc}
|
---|
1172 |
|
---|
1173 | \begin{funcdesc}{unicode}{\optional{object\optional{, encoding
|
---|
1174 | \optional{, errors}}}}
|
---|
1175 | Return the Unicode string version of \var{object} using one of the
|
---|
1176 | following modes:
|
---|
1177 |
|
---|
1178 | If \var{encoding} and/or \var{errors} are given, \code{unicode()}
|
---|
1179 | will decode the object which can either be an 8-bit string or a
|
---|
1180 | character buffer using the codec for \var{encoding}. The
|
---|
1181 | \var{encoding} parameter is a string giving the name of an encoding;
|
---|
1182 | if the encoding is not known, \exception{LookupError} is raised.
|
---|
1183 | Error handling is done according to \var{errors}; this specifies the
|
---|
1184 | treatment of characters which are invalid in the input encoding. If
|
---|
1185 | \var{errors} is \code{'strict'} (the default), a
|
---|
1186 | \exception{ValueError} is raised on errors, while a value of
|
---|
1187 | \code{'ignore'} causes errors to be silently ignored, and a value of
|
---|
1188 | \code{'replace'} causes the official Unicode replacement character,
|
---|
1189 | \code{U+FFFD}, to be used to replace input characters which cannot
|
---|
1190 | be decoded. See also the \refmodule{codecs} module.
|
---|
1191 |
|
---|
1192 | If no optional parameters are given, \code{unicode()} will mimic the
|
---|
1193 | behaviour of \code{str()} except that it returns Unicode strings
|
---|
1194 | instead of 8-bit strings. More precisely, if \var{object} is a
|
---|
1195 | Unicode string or subclass it will return that Unicode string without
|
---|
1196 | any additional decoding applied.
|
---|
1197 |
|
---|
1198 | For objects which provide a \method{__unicode__()} method, it will
|
---|
1199 | call this method without arguments to create a Unicode string. For
|
---|
1200 | all other objects, the 8-bit string version or representation is
|
---|
1201 | requested and then converted to a Unicode string using the codec for
|
---|
1202 | the default encoding in \code{'strict'} mode.
|
---|
1203 |
|
---|
1204 | \versionadded{2.0}
|
---|
1205 | \versionchanged[Support for \method{__unicode__()} added]{2.2}
|
---|
1206 | \end{funcdesc}
|
---|
1207 |
|
---|
1208 | \begin{funcdesc}{vars}{\optional{object}}
|
---|
1209 | Without arguments, return a dictionary corresponding to the current
|
---|
1210 | local symbol table. With a module, class or class instance object
|
---|
1211 | as argument (or anything else that has a \member{__dict__}
|
---|
1212 | attribute), returns a dictionary corresponding to the object's
|
---|
1213 | symbol table. The returned dictionary should not be modified: the
|
---|
1214 | effects on the corresponding symbol table are undefined.\footnote{
|
---|
1215 | In the current implementation, local variable bindings cannot
|
---|
1216 | normally be affected this way, but variables retrieved from
|
---|
1217 | other scopes (such as modules) can be. This may change.}
|
---|
1218 | \end{funcdesc}
|
---|
1219 |
|
---|
1220 | \begin{funcdesc}{xrange}{\optional{start,} stop\optional{, step}}
|
---|
1221 | This function is very similar to \function{range()}, but returns an
|
---|
1222 | ``xrange object'' instead of a list. This is an opaque sequence
|
---|
1223 | type which yields the same values as the corresponding list, without
|
---|
1224 | actually storing them all simultaneously. The advantage of
|
---|
1225 | \function{xrange()} over \function{range()} is minimal (since
|
---|
1226 | \function{xrange()} still has to create the values when asked for
|
---|
1227 | them) except when a very large range is used on a memory-starved
|
---|
1228 | machine or when all of the range's elements are never used (such as
|
---|
1229 | when the loop is usually terminated with \keyword{break}).
|
---|
1230 |
|
---|
1231 | \note{\function{xrange()} is intended to be simple and fast.
|
---|
1232 | Implementations may impose restrictions to achieve this.
|
---|
1233 | The C implementation of Python restricts all arguments to
|
---|
1234 | native C longs ("short" Python integers), and also requires
|
---|
1235 | that the number of elements fit in a native C long.}
|
---|
1236 | \end{funcdesc}
|
---|
1237 |
|
---|
1238 | \begin{funcdesc}{zip}{\optional{iterable, \moreargs}}
|
---|
1239 | This function returns a list of tuples, where the \var{i}-th tuple contains
|
---|
1240 | the \var{i}-th element from each of the argument sequences or iterables.
|
---|
1241 | The returned list is truncated in length to the length of
|
---|
1242 | the shortest argument sequence. When there are multiple arguments
|
---|
1243 | which are all of the same length, \function{zip()} is
|
---|
1244 | similar to \function{map()} with an initial argument of \code{None}.
|
---|
1245 | With a single sequence argument, it returns a list of 1-tuples.
|
---|
1246 | With no arguments, it returns an empty list.
|
---|
1247 | \versionadded{2.0}
|
---|
1248 |
|
---|
1249 | \versionchanged[Formerly, \function{zip()} required at least one argument
|
---|
1250 | and \code{zip()} raised a \exception{TypeError} instead of returning
|
---|
1251 | an empty list]{2.4}
|
---|
1252 | \end{funcdesc}
|
---|
1253 |
|
---|
1254 |
|
---|
1255 | % ---------------------------------------------------------------------------
|
---|
1256 |
|
---|
1257 |
|
---|
1258 | \section{Non-essential Built-in Functions \label{non-essential-built-in-funcs}}
|
---|
1259 |
|
---|
1260 | There are several built-in functions that are no longer essential to learn,
|
---|
1261 | know or use in modern Python programming. They have been kept here to
|
---|
1262 | maintain backwards compatibility with programs written for older versions
|
---|
1263 | of Python.
|
---|
1264 |
|
---|
1265 | Python programmers, trainers, students and bookwriters should feel free to
|
---|
1266 | bypass these functions without concerns about missing something important.
|
---|
1267 |
|
---|
1268 |
|
---|
1269 | \setindexsubitem{(non-essential built-in functions)}
|
---|
1270 |
|
---|
1271 | \begin{funcdesc}{apply}{function, args\optional{, keywords}}
|
---|
1272 | The \var{function} argument must be a callable object (a
|
---|
1273 | user-defined or built-in function or method, or a class object) and
|
---|
1274 | the \var{args} argument must be a sequence. The \var{function} is
|
---|
1275 | called with \var{args} as the argument list; the number of arguments
|
---|
1276 | is the length of the tuple.
|
---|
1277 | If the optional \var{keywords} argument is present, it must be a
|
---|
1278 | dictionary whose keys are strings. It specifies keyword arguments
|
---|
1279 | to be added to the end of the argument list.
|
---|
1280 | Calling \function{apply()} is different from just calling
|
---|
1281 | \code{\var{function}(\var{args})}, since in that case there is always
|
---|
1282 | exactly one argument. The use of \function{apply()} is equivalent
|
---|
1283 | to \code{\var{function}(*\var{args}, **\var{keywords})}.
|
---|
1284 | Use of \function{apply()} is not necessary since the ``extended call
|
---|
1285 | syntax,'' as used in the last example, is completely equivalent.
|
---|
1286 |
|
---|
1287 | \deprecated{2.3}{Use the extended call syntax instead, as described
|
---|
1288 | above.}
|
---|
1289 | \end{funcdesc}
|
---|
1290 |
|
---|
1291 | \begin{funcdesc}{buffer}{object\optional{, offset\optional{, size}}}
|
---|
1292 | The \var{object} argument must be an object that supports the buffer
|
---|
1293 | call interface (such as strings, arrays, and buffers). A new buffer
|
---|
1294 | object will be created which references the \var{object} argument.
|
---|
1295 | The buffer object will be a slice from the beginning of \var{object}
|
---|
1296 | (or from the specified \var{offset}). The slice will extend to the
|
---|
1297 | end of \var{object} (or will have a length given by the \var{size}
|
---|
1298 | argument).
|
---|
1299 | \end{funcdesc}
|
---|
1300 |
|
---|
1301 | \begin{funcdesc}{coerce}{x, y}
|
---|
1302 | Return a tuple consisting of the two numeric arguments converted to
|
---|
1303 | a common type, using the same rules as used by arithmetic
|
---|
1304 | operations. If coercion is not possible, raise \exception{TypeError}.
|
---|
1305 | \end{funcdesc}
|
---|
1306 |
|
---|
1307 | \begin{funcdesc}{intern}{string}
|
---|
1308 | Enter \var{string} in the table of ``interned'' strings and return
|
---|
1309 | the interned string -- which is \var{string} itself or a copy.
|
---|
1310 | Interning strings is useful to gain a little performance on
|
---|
1311 | dictionary lookup -- if the keys in a dictionary are interned, and
|
---|
1312 | the lookup key is interned, the key comparisons (after hashing) can
|
---|
1313 | be done by a pointer compare instead of a string compare. Normally,
|
---|
1314 | the names used in Python programs are automatically interned, and
|
---|
1315 | the dictionaries used to hold module, class or instance attributes
|
---|
1316 | have interned keys. \versionchanged[Interned strings are not
|
---|
1317 | immortal (like they used to be in Python 2.2 and before);
|
---|
1318 | you must keep a reference to the return value of \function{intern()}
|
---|
1319 | around to benefit from it]{2.3}
|
---|
1320 | \end{funcdesc}
|
---|