|
|
|
@ -40,16 +40,34 @@ Glossary |
|
|
|
ABCs with the :mod:`abc` module. |
|
|
|
|
|
|
|
argument |
|
|
|
A value passed to a function or method, assigned to a named local |
|
|
|
variable in the function body. A function or method may have both |
|
|
|
positional arguments and keyword arguments in its definition. |
|
|
|
Positional and keyword arguments may be variable-length: ``*`` accepts |
|
|
|
or passes (if in the function definition or call) several positional |
|
|
|
arguments in a list, while ``**`` does the same for keyword arguments |
|
|
|
in a dictionary. |
|
|
|
A value passed to a :term:`function` (or :term:`method`) when calling the |
|
|
|
function. There are two types of arguments: |
|
|
|
|
|
|
|
* :dfn:`keyword argument`: an argument preceded by an identifier (e.g. |
|
|
|
``name=``) in a function call or passed as a value in a dictionary |
|
|
|
preceded by ``**``. For example, ``3`` and ``5`` are both keyword |
|
|
|
arguments in the following calls to :func:`complex`:: |
|
|
|
|
|
|
|
complex(real=3, imag=5) |
|
|
|
complex(**{'real': 3, 'imag': 5}) |
|
|
|
|
|
|
|
* :dfn:`positional argument`: an argument that is not a keyword argument. |
|
|
|
Positional arguments can appear at the beginning of an argument list |
|
|
|
and/or be passed as elements of an :term:`iterable` preceded by ``*``. |
|
|
|
For example, ``3`` and ``5`` are both positional arguments in the |
|
|
|
following calls:: |
|
|
|
|
|
|
|
complex(3, 5) |
|
|
|
complex(*(3, 5)) |
|
|
|
|
|
|
|
Any expression may be used within the argument list, and the evaluated |
|
|
|
value is passed to the local variable. |
|
|
|
Arguments are assigned to the named local variables in a function body. |
|
|
|
See the :ref:`calls` section for the rules governing this assignment. |
|
|
|
Syntactically, any expression can be used to represent an argument; the |
|
|
|
evaluated value is assigned to the local variable. |
|
|
|
|
|
|
|
See also the :term:`parameter` glossary entry, the FAQ question on |
|
|
|
:ref:`the difference between arguments and parameters |
|
|
|
<faq-argument-vs-parameter>`, and :pep:`362`. |
|
|
|
|
|
|
|
attribute |
|
|
|
A value associated with an object which is referenced by name using |
|
|
|
@ -402,10 +420,7 @@ Glossary |
|
|
|
<sortinghowto>` for examples of how to create and use key functions. |
|
|
|
|
|
|
|
keyword argument |
|
|
|
Arguments which are preceded with a ``variable_name=`` in the call. |
|
|
|
The variable name designates the local name in the function to which the |
|
|
|
value is assigned. ``**`` is used to accept or pass a dictionary of |
|
|
|
keyword arguments. See :term:`argument`. |
|
|
|
See :term:`argument`. |
|
|
|
|
|
|
|
lambda |
|
|
|
An anonymous inline function consisting of a single :term:`expression` |
|
|
|
@ -548,6 +563,53 @@ Glossary |
|
|
|
subpackages. Technically, a package is a Python module with an |
|
|
|
``__path__`` attribute. |
|
|
|
|
|
|
|
parameter |
|
|
|
A named entity in a :term:`function` (or method) definition that |
|
|
|
specifies an :term:`argument` (or in some cases, arguments) that the |
|
|
|
function can accept. There are five types of parameters: |
|
|
|
|
|
|
|
* :dfn:`positional-or-keyword`: specifies an argument that can be passed |
|
|
|
either :term:`positionally <argument>` or as a :term:`keyword argument |
|
|
|
<argument>`. This is the default kind of parameter, for example *foo* |
|
|
|
and *bar* in the following:: |
|
|
|
|
|
|
|
def func(foo, bar=None): ... |
|
|
|
|
|
|
|
* :dfn:`positional-only`: specifies an argument that can be supplied only |
|
|
|
by position. Python has no syntax for defining positional-only |
|
|
|
parameters. However, some built-in functions have positional-only |
|
|
|
parameters (e.g. :func:`abs`). |
|
|
|
|
|
|
|
* :dfn:`keyword-only`: specifies an argument that can be supplied only |
|
|
|
by keyword. Keyword-only parameters can be defined by including a |
|
|
|
single var-positional parameter or bare ``*`` in the parameter list |
|
|
|
of the function definition before them, for example *kw_only1* and |
|
|
|
*kw_only2* in the following:: |
|
|
|
|
|
|
|
def func(arg, *, kw_only1, kw_only2): ... |
|
|
|
|
|
|
|
* :dfn:`var-positional`: specifies that an arbitrary sequence of |
|
|
|
positional arguments can be provided (in addition to any positional |
|
|
|
arguments already accepted by other parameters). Such a parameter can |
|
|
|
be defined by prepending the parameter name with ``*``, for example |
|
|
|
*args* in the following:: |
|
|
|
|
|
|
|
def func(*args, **kwargs): ... |
|
|
|
|
|
|
|
* :dfn:`var-keyword`: specifies that arbitrarily many keyword arguments |
|
|
|
can be provided (in addition to any keyword arguments already accepted |
|
|
|
by other parameters). Such a parameter can be defined by prepending |
|
|
|
the parameter name with ``**``, for example *kwargs* in the example |
|
|
|
above. |
|
|
|
|
|
|
|
Parameters can specify both optional and required arguments, as well as |
|
|
|
default values for some optional arguments. |
|
|
|
|
|
|
|
See also the :term:`argument` glossary entry, the FAQ question on |
|
|
|
:ref:`the difference between arguments and parameters |
|
|
|
<faq-argument-vs-parameter>`, the :class:`inspect.Parameter` class, the |
|
|
|
:ref:`function` section, and :pep:`362`. |
|
|
|
|
|
|
|
path entry |
|
|
|
A single location on the :term:`import path` which the :term:`path |
|
|
|
based finder` consults to find modules for importing. |
|
|
|
@ -571,11 +633,7 @@ Glossary |
|
|
|
that contribute to a namespace package, as defined in :pep:`420`. |
|
|
|
|
|
|
|
positional argument |
|
|
|
The arguments assigned to local names inside a function or method, |
|
|
|
determined by the order in which they were given in the call. ``*`` is |
|
|
|
used to either accept multiple positional arguments (when in the |
|
|
|
definition), or pass several arguments as a list to a function. See |
|
|
|
:term:`argument`. |
|
|
|
See :term:`argument`. |
|
|
|
|
|
|
|
provisional package |
|
|
|
A provisional package is one which has been deliberately excluded from |
|
|
|
|