Сообщить об ошибке.

Дублирование членов и значений перечисления модуля enum

Наличие двух членов перечисления модуля enum с одинаковым именем недопустимо:

>>> from enum import Enum
>>> class Shape(Enum):
...     SQUARE = 2
...     SQUARE = 3
...
# Traceback (most recent call last):
...
# TypeError: Attempted to reuse key: 'SQUARE'

Но, члены перечислений могут иметь псевдонимы. Другими словами, два члена перечисления могут иметь одно и то же значение. Для двух членов A и B с одинаковым значением и A, определенного первым, B является псевдонимом для A. Поиск по значению значений A и B вернет A. Поиск по имени B также вернет A:

>>> class Shape(Enum):
...     SQUARE = 2
...     DIAMOND = 1
...     CIRCLE = 3
...     ALIAS_FOR_SQUARE = 2
...
>>> Shape.SQUARE
# <Shape.SQUARE: 2>
>>> Shape.ALIAS_FOR_SQUARE
# <Shape.SQUARE: 2>
>>> Shape(2)
# <Shape.SQUARE: 2>

Примечание. Попытка создать член с тем же именем, что и уже определенный атрибут (другой член, метод и т. д.), или попытка создать атрибут с тем же именем, что и член, недопустимы!