2015-09-22 15 views
9

Tôi đang sử dụng cổng lùi Enum enum34 bằng Python 2.7.Truy cập Python enum34 theo tên

Theo tài liệu, bạn có thể truy cập thành viên enum theo tên của họ, sử dụng quyền truy cập mục. Đó là, sau đây nên làm việc:

from enum import Enum 

class Foo(Enum): 
    bar = 1 
    baz = 2 

print(Foo['bar']) 

Tuy nhiên, khi tôi chạy đoạn code tôi nhận được lỗi này trong dòng cuối cùng:

TypeError: 'type' object has no attribute ' __getitem__ '

Tôi có thiếu một cái gì đó ở đây hay là functionallity này chỉ không được thực hiện trong 2.7 backport?

+1

Làm việc cho tôi (cả Python 2 và Python 3). – vaultah

+0

@vaultah: Tôi vừa thử nghiệm nó trong một virtualenv trinh nữ mới, nơi tôi chỉ cài đặt enum34 và ở đó nó hoạt động. Vì vậy, có thể có một cuộc xung đột với một số gói khác? Bất kỳ ý tưởng làm thế nào tôi có thể theo dõi này? – luator

+6

'Nhập enum; in (enum .__ file __) 'cho bạn biết là được nhập khẩu? Bạn có thể có một mô-đun khác được cài đặt ở nơi khác. Sau đó so sánh tệp đó với nội dung gói virtualenv 'lib/python2.7/site-packages/enum /' mới để xem bạn có phiên bản cũ hay không. –

Trả lời

8

Bạn có thể đang bị xung đột với mô-đun Enum. Hãy thử điều này:

pip uninstall Enum

Được cài đặt, điều này không có tác dụng. Sau khi gỡ cài đặt Enum, nó hoạt động như một sự quyến rũ.

Các vấn đề liên quan