2010-07-14 38 views
16

thể trùng lặp:
What’s the best way to implement an ‘enum’ in Python?Python tương đương

thành ngữ Python cho một danh sách các tên khác nhau được lập chỉ mục (như Enum trong C/C++ hoặc Java) là gì?

Làm rõ: Tôi muốn một thuộc tính có giá trị được đặt thành dải ô bị hạn chế, chẳng hạn như bộ thẻ Heart, Club, Spade, Diamond. Tôi có thể đại diện cho nó với một int trong phạm vi 0..3, nhưng nó sẽ cho phép ra khỏi phạm vi đầu vào (như 15).

+1

http://stackoverflow.com/questions/36932/whats-the-best-way-to-implement-an-enum-in-python –

+0

Câu hỏi tương tự: http://stackoverflow.com/questions/36932/whats-the-best-way-to-implement-an -enum-in-python – Jordan

Trả lời

15
class Suite(object): pass 

class Heart(Suite): pass 
class Club(Suite): pass 

, vv

Một lớp học trong python là một đối tượng. Vì vậy, bạn có thể viết

x=Heart 

, vv

7

ở đây là rất cùng một câu hỏi phổ biến trên stackoverflow

Sửa:

class Suite(set): 
    def __getattr__(self, name): 
     if name in self: 
      return name 
     raise AttributeError 

s1 = Suite(['Heart', 'Club', 'Spade', 'Diamond']) 
s1.Heart 
Các vấn đề liên quan