.. method:: EnumType.__getitem__(cls, name)
- Returns the Enum member in *cls* matching *name*, or raises an :exc:`KeyError`::
+ Returns the Enum member in *cls* matching *name*, or raises a :exc:`KeyError`::
>>> Color['BLUE']
<Color.BLUE: 3>
.. note:: Enum member values
- Member values can be anything: :class:`int`, :class:`str`, etc.. If
+ Member values can be anything: :class:`int`, :class:`str`, etc. If
the exact value is unimportant you may use :class:`auto` instances and an
appropriate value will be chosen for you. See :class:`auto` for the
details.
names will also be removed from the completed enumeration. See
:ref:`TimePeriod <enum-time-period>` for an example.
- .. method:: Enum.__call__(cls, value, names=None, \*, module=None, qualname=None, type=None, start=1, boundary=None)
+ .. method:: Enum.__call__(cls, value, names=None, *, module=None, qualname=None, type=None, start=1, boundary=None)
This method is called in two different ways:
:module: The name of the module the new Enum is created in.
:qualname: The actual location in the module where this Enum can be found.
:type: A mix-in type for the new Enum.
- :start: The first integer value for the Enum (used by :class:`auto`)
- :boundary: How to handle out-of-range values from bit operations (:class:`Flag` only)
+ :start: The first integer value for the Enum (used by :class:`auto`).
+ :boundary: How to handle out-of-range values from bit operations (:class:`Flag` only).
.. method:: Enum.__dir__(self)
>>> PowersOfThree.SECOND.value
6
- .. method:: Enum.__init_subclass__(cls, \**kwds)
+ .. method:: Enum.__init_subclass__(cls, **kwds)
A *classmethod* that is used to further configure subsequent subclasses.
By default, does nothing.
.. method:: Enum.__format__(self)
Returns the string used for *format()* and *f-string* calls. By default,
- returns :meth:`__str__` returns, but can be overridden::
+ returns :meth:`__str__` return value, but can be overridden::
>>> class OtherStyle(Enum):
... ALTERNATE = auto()
Using :class:`auto` with :class:`Flag` results in integers that are powers
of two, starting with ``1``.
- .. versionchanged:: 3.11 The *repr()* of zero-valued flags has changed. It
+ .. versionchanged:: 3.11 The *repr()* of zero-valued flags has changed. It
is now::
- >>> Color(0) # doctest: +SKIP
- <Color: 0>
+ >>> Color(0) # doctest: +SKIP
+ <Color: 0>
.. class:: IntFlag
*replacement of existing constants* use-case. :meth:`~object.__format__` was
already :meth:`!int.__format__` for that same reason.
- Inversion of a :class:`!IntFlag` now returns a positive value that is the
+ Inversion of an :class:`!IntFlag` now returns a positive value that is the
union of all flags not in the given flag, rather than a negative value.
This matches the existing :class:`Flag` behavior.
* :meth:`!int.__str__` for :class:`IntEnum` and :class:`IntFlag`
* :meth:`!str.__str__` for :class:`StrEnum`
- Inherit from :class:`!ReprEnum` to keep the :class:`str() <str> / :func:`format`
+ Inherit from :class:`!ReprEnum` to keep the :class:`str() <str>` / :func:`format`
of the mixed-in data type instead of using the
:class:`Enum`-default :meth:`str() <Enum.__str__>`.
.. attribute:: NAMED_FLAGS
Ensure that any flag groups/masks contain only named flags -- useful when
- values are specified instead of being generated by :func:`auto`
+ values are specified instead of being generated by :func:`auto`::
>>> from enum import Flag, verify, NAMED_FLAGS
>>> @verify(NAMED_FLAGS)
:class:`IntEnum`, :class:`StrEnum`, and :class:`IntFlag`
- These three enum types are designed to be drop-in replacements for existing
- integer- and string-based values; as such, they have extra limitations:
+ These three enum types are designed to be drop-in replacements for existing
+ integer- and string-based values; as such, they have extra limitations:
- - ``__str__`` uses the value and not the name of the enum member
+ - ``__str__`` uses the value and not the name of the enum member
- - ``__format__``, because it uses ``__str__``, will also use the value of
- the enum member instead of its name
+ - ``__format__``, because it uses ``__str__``, will also use the value of
+ the enum member instead of its name
- If you do not need/want those limitations, you can either create your own
- base class by mixing in the ``int`` or ``str`` type yourself::
+ If you do not need/want those limitations, you can either create your own
+ base class by mixing in the ``int`` or ``str`` type yourself::
- >>> from enum import Enum
- >>> class MyIntEnum(int, Enum):
- ... pass
+ >>> from enum import Enum
+ >>> class MyIntEnum(int, Enum):
+ ... pass
or you can reassign the appropriate :meth:`str`, etc., in your enum::
- >>> from enum import IntEnum
- >>> class MyIntEnum(IntEnum):
- ... __str__ = IntEnum.__str__
+ >>> from enum import IntEnum
+ >>> class MyIntEnum(IntEnum):
+ ... __str__ = IntEnum.__str__