http://farmdev.com/thoughts/24/what-does-the-def-star-variable-or-def-asterisk-parameter-syntax-do-in-python-/
The right entry type to use isn't clear; operator seems wrong, because *,**,@
aren't being used in expressions here. I put them as 'statement'; 'syntax'
might be better.
The function definition does not execute the function body; this gets executed
only when the function is called.
+.. index::
+ statement: @
+
A function definition may be wrapped by one or more :term:`decorator` expressions.
Decorator expressions are evaluated when the function is defined, in the scope
that contains the function definition. The result must be a callable, which is
penguin.append("property of the zoo")
return penguin
+.. index::
+ statement: *
+ statement: **
+
Function call semantics are described in more detail in section :ref:`calls`. A
function call always assigns values to all parameters mentioned in the parameter
list, either from position arguments, from keyword arguments, or from default
Arbitrary Argument Lists
------------------------
+.. index::
+ statement: *
+
Finally, the least frequently used option is to specify that a function can be
called with an arbitrary number of arguments. These arguments will be wrapped
up in a tuple. Before the variable number of arguments, zero or more normal
>>> range(*args) # call with arguments unpacked from a list
[3, 4, 5]
+.. index::
+ statement: **
+
In the same fashion, dictionaries can deliver keyword arguments with the ``**``\
-operator::