Merge from 3.2: Issue #12531: add index entries to documentation of * and ** in function calls

This commit is contained in:
Eli Bendersky 2011-07-30 07:07:29 +03:00
commit 6e5b2ac400

View file

@ -667,12 +667,15 @@ dictionary containing the excess keyword arguments (using the keywords as keys
and the argument values as corresponding values), or a (new) empty dictionary if and the argument values as corresponding values), or a (new) empty dictionary if
there were no excess keyword arguments. there were no excess keyword arguments.
.. index::
single: *; in function calls
If the syntax ``*expression`` appears in the function call, ``expression`` must If the syntax ``*expression`` appears in the function call, ``expression`` must
evaluate to a sequence. Elements from this sequence are treated as if they were evaluate to an iterable. Elements from this iterable are treated as if they
additional positional arguments; if there are positional arguments *x1*,..., were additional positional arguments; if there are positional arguments
*xN*, and ``expression`` evaluates to a sequence *y1*, ..., *yM*, this is *x1*, ... ,*xN*, and ``expression`` evaluates to a sequence *y1*, ..., *yM*,
equivalent to a call with M+N positional arguments *x1*, ..., *xN*, *y1*, ..., this is equivalent to a call with M+N positional arguments *x1*, ..., *xN*,
*yM*. *y1*, ..., *yM*.
A consequence of this is that although the ``*expression`` syntax may appear A consequence of this is that although the ``*expression`` syntax may appear
*after* some keyword arguments, it is processed *before* the keyword arguments *after* some keyword arguments, it is processed *before* the keyword arguments
@ -693,6 +696,9 @@ A consequence of this is that although the ``*expression`` syntax may appear
It is unusual for both keyword arguments and the ``*expression`` syntax to be It is unusual for both keyword arguments and the ``*expression`` syntax to be
used in the same call, so in practice this confusion does not arise. used in the same call, so in practice this confusion does not arise.
.. index::
single: **; in function calls
If the syntax ``**expression`` appears in the function call, ``expression`` must If the syntax ``**expression`` appears in the function call, ``expression`` must
evaluate to a mapping, the contents of which are treated as additional keyword evaluate to a mapping, the contents of which are treated as additional keyword
arguments. In the case of a keyword appearing in both ``expression`` and as an arguments. In the case of a keyword appearing in both ``expression`` and as an