2015-07-20 47 views
3

我使用類enum.Enum爲了創建一個變量與選定的成員。Python枚舉爲布爾變量

主要原因是讓我的團隊中的其他開發人員通過爲變量選擇幾個允許成員之一來使用相同的約定。

我想以同樣的方式創建一個布爾變量,使其他開發人員能夠選擇True或False。

是否可以定義一個將接收True False選項的枚舉?有沒有更好的選擇?

下列選項不工作:

boolean_enum =枚舉( 'boolean_enum', '對錯')

boolean_enum =枚舉( 'boolean_enum',對錯)

+1

什麼是你想要做訪問? Python已經有了一個布爾值。 – marcadian

+0

我希望其他開發人員使用我的類來知道此變量是布爾值並具有True False選項。我使用它作爲整個枚舉類的一部分,保留一個變量的命名約定,以後將轉換爲json格式 – user3370773

回答

4
boolean_enum = Enum('boolean_enum', [('True', True), ('False', False)]) 

結帳這個API的文檔:https://docs.python.org/3/library/enum.html#functional-api

如果您只爲names參數指定了'True False',它們將被分配自動枚舉值(1,2),這不是您想要的值。 如果沒有它作爲names參數的字符串參數,你不能發送True False。

所以你想要的是允許你指定名稱和值的選項之一,如上所述。

編輯:
當如上所定義,枚舉元件不是由boolean_enum.True訪問的(但它們是可訪問由boolean_enum['True']boolean_enum(True))。
爲了避免這個問題,字段名稱可以改變,並定義爲

Enum('boolean_enum', [('TRUE', True), ('FALSE', False)]) 

然後爲boolean_enum.TRUEboolean_enum['TRUE']boolean_enum(True)

+0

我使用了命令行,但是當嘗試boolean_enum變量時,出現以下語法錯誤(在PyCharm上IDE):「預計的名稱」 – user3370773

+0

@ user3370773,你可以在這裏看到它的工作原理:http://goo.gl/TcdZxo。也許別的東西在那裏。我並不在PyCharm的Python3中進行檢查,但我無法想象PyCharm的這種特殊功能會出現什麼問題。 – Eran

+0

你可以請現在檢查一下:http://goo.gl/2nCcWQ。它似乎並沒有爲我工作,當我嘗試使用枚舉 – user3370773