Бывает полезно получить доступ к элементам в перечислениях программно. Например, в ситуациях, когда вызов Color.RED
не работает, потому что точный цвет неизвестен во время написания программы. Класс Enum
модуля enum
разрешает такой доступ:
>>> from enum import Enum >>> class Color(Enum): ... RED = 1 ... GREEN = 2 ... BLUE = 3 ... >>> Color(1) # <Color.RED: 1> >>> Color(3) # <Color.BLUE: 3>
Если необходимо получить доступ к членам перечисления по имени, то используйте доступ к элементу:
>>> Color['RED'] # <Color.RED: 1> >>> Color['GREEN'] # <Color.GREEN: 2>
Если есть член перечисления и необходимо вытащить его имя или значение:
>>> member = Color.RED >>> member.name # 'RED' >>> member.value # 1