我注意到與Python的枚舉不同的行爲。如何同時使用枚舉和enum34?
我第一次驚訝地注意到輸出,這是一個int
:
>>>import enum
>>>class Color(enum.Enum):
red = 1
>>>Color.red
1
然後我意識到我已經安裝而不是enum34
enum
:
$ sudo apt-get install python-enum34
而現在,結果是不同的:
>>>Color.red
<Color.red: 1>
我目前的應用程序正在接受enum
類型,其中我得到的枚舉值爲value.value
。當然,如果安裝了錯誤的枚舉,這會引發異常。
我該如何處理這個問題?
你說的是一些'enum'模塊,而不是標準庫'enum'嗎?標準庫中的一個不應該給你你看到的結果。 – user2357112
我不知道。我剛剛安裝了一個'ipython'並嘗試了這個例子。我得到了以前的輸出。然後我安裝了'enum34',我得到了後一個結果。 – nowox
新的安裝應該給你一個ImportError或你想要的結果,這取決於你的Python版本。你確定你記得從'enum.Enum'繼承嗎?您清楚顯示的代碼片段不是從實際的解釋器會話複製粘貼的。 – user2357112