[3.14] gh-136859: Improve StrEnum docs (GH-136864) (#136936)

Co-authored-by: Nacho Caballero <nachocab@gmail.com>
Co-authored-by: Nacho Caballero <nacho.caballero@astrazeneca.com>
Co-authored-by: Antonio Spadaro <ilovelinux@users.noreply.github.com>
This commit is contained in:
Miss Islington (bot) 2025-07-22 10:32:09 +02:00 committed by GitHub
parent d5d3adafa7
commit ddd3413687
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -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::