[docs] lexical_analysis: Expand the text on ``_`` (GH-28903) (GH-28933)

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>
(cherry picked from commit 3dee0cb621)

Co-authored-by: Petr Viktorin <encukou@gmail.com>
This commit is contained in:
Miss Islington (bot) 2021-10-13 09:58:06 -07:00 committed by GitHub
parent 7e74d99c53
commit 5abb2dec2c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 16 additions and 4 deletions

View File

@ -385,10 +385,20 @@ classes are identified by the patterns of leading and trailing underscore
characters: characters:
``_*`` ``_*``
Not imported by ``from module import *``. The special identifier ``_`` is used Not imported by ``from module import *``.
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`. 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:: .. note::
@ -396,6 +406,8 @@ characters:
refer to the documentation for the :mod:`gettext` module for more refer to the documentation for the :mod:`gettext` module for more
information on this convention. information on this convention.
It is also commonly used for unused variables.
``__*__`` ``__*__``
System-defined names, informally known as "dunder" names. These names are System-defined names, informally known as "dunder" names. These names are
defined by the interpreter and its implementation (including the standard library). defined by the interpreter and its implementation (including the standard library).