Ich möchte eine enum mit vordefinierten Konstanten für einzelne Zeichen (gut für die Speicherung in der Datenbank) und String-Interpretation. Hier ist, was ich denke an:Python 2: Was ist die eleganteste/pythonischste Art, ein Enum mit String-Interpretationen zu machen?
class Fruits(Enum):
APPLE = 'A'
PEAR = 'P'
BANANA = 'B'
def __unicode__(self):
if self == APPLE: return "Crunchy Apple"
if self == PEAR: return "Sweet Pear"
if self == BANANA: return "Long Banana"
Aber
fruit = Fruits.APPLE
print fruit.__unicode__()
gibt
AttributeError: 'unicode' object has no attribute '__unicode__'
Und außerdem gibt es eine elegantere Möglichkeit sein, es zu tun
vorgehen es besser?
Sie scheinen Python2 zu verwenden. Können Sie bestätigen, ob Sie Python2 oder Python3 verwenden? (Sie können 'sys.version' überprüfen, um sicher zu sein.) –
Woher kam 'Fruits.TYPE_APPLE'? Sie haben nur 'Fruits.APPLE' definiert. Wenn Sie den Code in der Frage aus dem Speicher erneut eingegeben haben, kopieren Sie ihn aus einer Datei, die Sie tatsächlich ausgeführt haben, oder fügen Sie ihn beim nächsten Mal in eine tatsächliche interaktive Sitzung ein. – user2357112
@Rob Ich bin mehr interessiert an Python 2 – Digital