On Saturday, April 27, 2013, Greg Ewing wrote: > > This whole business can be avoided by doing things differently > in the first place. Instead of initialising the enum items by > calling the class, just assign a tuple of args to the name > and have the metaclass make the constructor call. > > class Planet(Enum): > MERCURY = (3.303e+23, 2.4397e6) > VENUS = (4.869e+24, 6.0518e6) > EARTH = (5.976e+24, 6.37814e6) > MARS = (6.421e+23, 3.3972e6) > JUPITER = (1.9e+27, 7.1492e7) > SATURN = (5.688e+26, 6.0268e7) > URANUS = (8.686e+25, 2.5559e7) > NEPTUNE = (1.024e+26, 2.4746e7) > > def __init__(self, mass, radius): > self.mass = mass > self.radius = radius > > I think that's better anyway, since it avoids aggravated > violation of DRY by repeating the class name umpteen times. >
If you want something like this, doyou really have to inherit from Enum? -- --Guido van Rossum (python.org/~guido)
_______________________________________________ Python-Dev mailing list Python-Dev@python.org http://mail.python.org/mailman/listinfo/python-dev Unsubscribe: http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com