From 49a0e5cf4499751ea9d964b8b362205cddda0a9b Mon Sep 17 00:00:00 2001 From: Saiyang Gou Date: Wed, 7 Apr 2021 12:06:43 -0700 Subject: [PATCH] [3.8] bpo-36540: Improve doc of function definition regarding positional-only arguments (GH-25235) (cherry picked from commit 58d72cab89cf9652acc0bf0007aa20b2bcc98499) Co-authored-by: Saiyang Gou --- Doc/reference/compound_stmts.rst | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/Doc/reference/compound_stmts.rst b/Doc/reference/compound_stmts.rst index 61037d97a0c3cc..9dd471a0c83ec5 100644 --- a/Doc/reference/compound_stmts.rst +++ b/Doc/reference/compound_stmts.rst @@ -582,19 +582,25 @@ e.g.:: return penguin .. index:: + single: / (slash); function definition single: * (asterisk); function definition single: **; function definition 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 +list, either from positional arguments, from keyword arguments, or from default values. If the form "``*identifier``" is present, it is initialized to a tuple receiving any excess positional parameters, defaulting to the empty tuple. If the form "``**identifier``" is present, it is initialized to a new ordered mapping receiving any excess keyword arguments, defaulting to a new empty mapping of the same type. Parameters after "``*``" or "``*identifier``" are keyword-only parameters and may only be passed -used keyword arguments. +by keyword arguments. Parameters before "``/``" are positional-only parameters +and may only be passed by positional arguments. + +.. versionchanged:: 3.8 + The ``/`` function parameter syntax may be used to indicate positional-only + parameters. See :pep:`570` for details. .. index:: pair: function; annotations