Ver Mensaje Individual
  #1 (permalink)  
Antiguo 23/09/2014, 03:11
SARGE553413
 
Fecha de Ingreso: febrero-2014
Mensajes: 55
Antigüedad: 10 años, 2 meses
Puntos: 3
Duda con "imitar" enum en Python 2.7

Hola a todos.

Estoy intentando imitar los enums de C/C++ o C# en python. Básicamente lo que hago es una clase con atributos estáticos.
Código:
class FRAME_TYPE():
    FT_AT_COMMAND = 0x08
    FT_AT_COMMAND_QUEUE = 0x09
    FT_REMOTE_AT_COMMAND = 0x17
    FT_AT_COMMAND_RESPNS = 0x88
    FT_MODEM_STATUS = 0x8A
    FT_REMOTE_COMMAND_RESPNS = 0x97
La duda que tengo es como, dentro de una función que recibe un parámetro del tipo del "enum", comprobar que su valor es correcto y lanzar una excepción en otro caso, es decir:
Código:
def getFrame(self, frameType):
        if( not checkValue(frameType)):
            raise ValueError("...")
Una manera sería comprobar todos los valores uno por uno, pero quiero saber su hay una manera mejor. Me vale con acceder a la lista de todos los atributos de la clase, pero son estáticos así que con __dict__ no puedo hacerlo.

¿Cómo puedo hacerlo?

Gracias, saludos.