ho notato un comportamento diverso con enum in Python.Come vivere con enum ed enum34?
primo luogo sono stato sorpreso a notare l'uscita di questo è stato un int
:
>>>import enum
>>>class Color(enum.Enum):
red = 1
>>>Color.red
1
Poi ho capito che dovevo enum
installato al posto di enum34
:
$ sudo apt-get install python-enum34
E ora, il risultato è diverso :
>>>Color.red
<Color.red: 1>
La mia applicazione corrente accetta enum
tipi in cui ottengo il valore della enum con value.value
. Ovviamente ciò solleverà un'eccezione se viene installato l'enum errato.
Come posso affrontare questo problema?
Stai parlando di alcune 'enum' modulo diverso dal' enum' standard biblioteca? Quello della libreria standard non avrebbe dovuto darti il risultato che hai visto. – user2357112
Non lo so. Ho appena eseguito una nuova installazione di 'ipython' e ho provato questo esempio. Ho ottenuto la prima uscita. Quindi ho installato 'enum34' e ho ottenuto il risultato finale. – nowox
Una nuova installazione dovrebbe aver fornito un ImportError o il risultato desiderato, a seconda della versione di Python. Sei sicuro di esserti ricordato di ereditare da "enum.Enum"? I frammenti di codice che hai mostrato chiaramente non sono copiati da una sessione di interprete reale. – user2357112