On 1/18/2011 8:08 AM, Karim wrote:

I know this is ugly but until now it is the only way (with this side effect) I found to declare Enums class that I _understand_:

*class CategoryType(object):
    """Implements the enumeration and prevent associated newly created
instances to redefine enums value via special class variable '__slots__'
    definition. It makes also, instances have no attributes at all.
    """
    __slots__ = ()

    TRANSISTOR, MOS, BIPOLAR, CAPACITOR, RESISTOR, DIODE, ESD, PAD, \
    COMPARATOR, OPAMP, ADC, DAC, PLL, OTHER = range(14)

    def toString ( self, litteral ):
"""Convert the litteral integer number to its associated string representation."""
        if litteral == self.TRANSISTOR:
          return 'transistor'
        elif litteral == self.MOS:
          return 'mos'
        elif litteral == self.BIPOLAR:*
[...]
IMHO this just cries out for a dictionary:

class CategoryType(object):
  __slots__ = ()
  enums = {
    0: 'transistor',
    1: 'mos',
    ...
    }
  def toString(self, literal):
"""Convert the literal integer number to its associated string representation."""
    return self.enums[literal]

Note this does not handle invalid literal.

If you are happy with range 14) you could alternatively use a list:
  enums = ['transistor, 'mos',  ...]

--
Bob Gailer
919-636-4239
Chapel Hill NC

_______________________________________________
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor

Reply via email to