Skip to content

[3.13] gh-136859: Improve StrEnum docs (GH-136864) #136937

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Jul 22, 2025
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 19 additions & 4 deletions Doc/library/enum.rst
Original file line number Diff line number Diff line change
Expand Up @@ -504,16 +504,31 @@ Data Types

.. class:: StrEnum

``StrEnum`` is the same as :class:`Enum`, but its members are also strings and can be used
in most of the same places that a string can be used. The result of any string
operation performed on or with a *StrEnum* member is not part of the enumeration.
*StrEnum* is the same as :class:`Enum`, but its members are also strings and
can be used in most of the same places that a string can be used. The result
of any string operation performed on or with a *StrEnum* member is not part
of the enumeration.

>>> from enum import StrEnum, auto
>>> class Color(StrEnum):
... RED = 'r'
... GREEN = 'g'
... BLUE = 'b'
... UNKNOWN = auto()
...
>>> Color.RED
<Color.RED: 'r'>
>>> Color.UNKNOWN
<Color.UNKNOWN: 'unknown'>
>>> str(Color.UNKNOWN)
'unknown'

.. note::

There are places in the stdlib that check for an exact :class:`str`
instead of a :class:`str` subclass (i.e. ``type(unknown) == str``
instead of ``isinstance(unknown, str)``), and in those locations you
will need to use ``str(StrEnum.member)``.
will need to use ``str(MyStrEnum.MY_MEMBER)``.

.. note::

Expand Down
Loading
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy