Gary Herron <[EMAIL PROTECTED]> wrote: >Another similar approach that keeps those values together in a single >namespace is this (my favorite): > > class State: > OPENED, CLOSED, ERROR = range(3) > >Then you can refer to the values as > State.OPENED > State.CLOSED > State.ERROR > >The extra clarity (and slight wordiness) of the dotted notation seems, >somehow, quite Pythonic to me.
I have here an implementation (written by a colleague) of a whole pile of such -- in this particular case it's helpful to do it in this style rather than the class OPENED: pass because the values are coming from/ going to a database. And it goes a little further, with class State: Enum = range(3) OPENED, CLOSED, ERROR = Enum Names = { OPENED: "OPENED", CLOSED: "CLOSED", ERROR: "ERROR" } so you can used State.Names[state] to provide something user-readable, and state in State.Enum to check data consistency. (OK, that probably doesn't make much sense with this particular State, but it does when your getting value-as-number from an external source.) -- \S -- [EMAIL PROTECTED] -- http://www.chaos.org.uk/~sion/ ___ | "Frankly I have no feelings towards penguins one way or the other" \X/ | -- Arthur C. Clarke her nu becomeþ se bera eadward ofdun hlæddre heafdes bæce bump bump bump
-- http://mail.python.org/mailman/listinfo/python-list