Используя Python 3, я распаковал код flufl.enum в дерево исходного кода приложения, чтобы попробовать его. Пример кода:
from taurine.flufl.enum import Enum
class Colors(Enum):
red = 1
green = 2
blue = 3
print(Colors.red)
red = Colors.red
print("red == Colors.red "+str(red == Colors.red))
print("red == Colors.blue "+str(red == Colors.blue))
print("red is Colors.red "+str(red is Colors.red))
Все работает как положено, кроме печати (Color.red). Согласно http://packages.python.org/flufl.enum/docs/using.html я ожидал, что он напечатает «Colors.red», но он печатает 1. Кто-нибудь, знакомый с этим пакетом, знает, есть ли способ заставить его напечатать «Colors.red»? Я разместил вопрос на сайте библиотеки, но подумал, что кто-то здесь тоже может иметь опыт.
РЕДАКТИРОВАТЬ: Это работает должным образом, если я определяю цвета с:
Colors = make_enum('Colors','red green blue')
Но я предпочитаю синтаксис:
class Colors(Enum):
red = 1
green = 2
blue = 3