Наличие двух членов перечисления модуля 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>
Примечание. Попытка создать член с тем же именем, что и уже определенный атрибут (другой член, метод и т. д.), или попытка создать атрибут с тем же именем, что и член, недопустимы!