2010-07-14 13 views
16

Duplicar posibles:
What’s the best way to implement an ‘enum’ in Python?enumeración de Python equivalente

¿Cuál es el lenguaje Python para una lista de nombres diferente indexados (como Enum en C/C++ o Java)?

Aclaración: Deseo que una propiedad de un valor se establezca en un rango restringido, como suites de tarjeta Heart, Club, Spade, Diamond. Podría representarlo con un int en el rango 0..3, pero permitiría la entrada fuera de rango (como 15).

+1

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

+0

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

Respuesta

15
class Suite(object): pass 

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

etc.

Una clase en Python es un objeto. Para que pueda escribir

x=Heart 

etc.

7

aquí es muy misma pregunta popular en stackoverflow

Editar:

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

s1 = Suite(['Heart', 'Club', 'Spade', 'Diamond']) 
s1.Heart