summaryrefslogtreecommitdiffstats
path: root/Doc/reference/lexical_analysis.rst
diff options
context:
space:
mode:
authorPetr Viktorin <encukou@gmail.com>2021-10-13 16:34:01 (GMT)
committerGitHub <noreply@github.com>2021-10-13 16:34:01 (GMT)
commit3dee0cb6217db326e844955a7f8b424c67990557 (patch)
tree080349c3d91c5866dfb5fe0171d371f702783ed5 /Doc/reference/lexical_analysis.rst
parent6fafc25aea8689048314b5bf7a9bb986bb1ce238 (diff)
downloadcpython-3dee0cb6217db326e844955a7f8b424c67990557.zip
cpython-3dee0cb6217db326e844955a7f8b424c67990557.tar.gz
cpython-3dee0cb6217db326e844955a7f8b424c67990557.tar.bz2
[docs] lexical_analysis: Expand the text on ``_`` (GH-28903)
Also: * Expand the discussion into its own entry. (Even before this, text on ``_`` was longet than the text on ``_*``.) * Briefly note the other common convention for `_`: naming unused variables. Co-authored-by: Brandt Bucher <brandtbucher@gmail.com> Co-authored-by: Ken Jin <28750310+Fidget-Spinner@users.noreply.github.com> Co-authored-by: Ɓukasz Langa <lukasz@langa.pl>
Diffstat (limited to 'Doc/reference/lexical_analysis.rst')
-rw-r--r--Doc/reference/lexical_analysis.rst20
1 files changed, 16 insertions, 4 deletions
diff --git a/Doc/reference/lexical_analysis.rst b/Doc/reference/lexical_analysis.rst
index 91ca855..4f7f001 100644
--- a/Doc/reference/lexical_analysis.rst
+++ b/Doc/reference/lexical_analysis.rst
@@ -385,10 +385,20 @@ classes are identified by the patterns of leading and trailing underscore
characters:
``_*``
- Not imported by ``from module import *``. The special identifier ``_`` is used
- in the interactive interpreter to store the result of the last evaluation; it is
- stored in the :mod:`builtins` module. When not in interactive mode, ``_``
- has no special meaning and is not defined. See section :ref:`import`.
+ Not imported by ``from module import *``.
+
+``_``
+ In a ``case`` pattern within a :keyword:`match` statement, ``_`` is a
+ :ref:`soft keyword <soft-keywords>` that denotes a
+ :ref:`wildcard <wildcard-patterns>`.
+
+ Separately, the interactive interpreter makes the result of the last evaluation
+ available in the variable ``_``.
+ (It is stored in the :mod:`builtins` module, alongside built-in
+ functions like ``print``.)
+
+ Elsewhere, ``_`` is a regular identifier. It is often used to name
+ "special" items, but it is not special to Python itself.
.. note::
@@ -396,6 +406,8 @@ characters:
refer to the documentation for the :mod:`gettext` module for more
information on this convention.
+ It is also commonly used for unused variables.
+
``__*__``
System-defined names, informally known as "dunder" names. These names are
defined by the interpreter and its implementation (including the standard library).