]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
[docs] lexical_analysis: Expand the text on ``_`` (GH-28903)
authorPetr Viktorin <encukou@gmail.com>
Wed, 13 Oct 2021 16:34:01 +0000 (18:34 +0200)
committerGitHub <noreply@github.com>
Wed, 13 Oct 2021 16:34:01 +0000 (18:34 +0200)
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>
Doc/reference/lexical_analysis.rst

index 91ca8554adabfb2e553b0b2383564ff49b9a8162..4f7f00192d749998c3c6cbc698b3360185f4f922 100644 (file)
@@ -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).