[Python-Dev] class name spaces inside an outer function (original) (raw)
Guido van Rossum guido at python.org
Sun Apr 28 06:20:07 CEST 2013
- Previous message: [Python-Dev] class name spaces inside an outer function
- Next message: [Python-Dev] class name spaces inside an outer function
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
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) -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://mail.python.org/pipermail/python-dev/attachments/20130427/d6eb5ae0/attachment.html>
- Previous message: [Python-Dev] class name spaces inside an outer function
- Next message: [Python-Dev] class name spaces inside an outer function
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]