Re: [Python-Dev] class name spaces inside an outer function

2013年4月27日 19:03:41 -0700

PJ Eby wrote:
On Sat, Apr 27, 2013 at 2:27 PM, Ethan Furman <[email protected]> wrote:
I filed bug http://bugs.python.org/issue17853 last night.
About the only workaround I can see is to put "Season = Season" at the
top of a class that uses this inside a function definition,
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.
--
Greg
_______________________________________________
Python-Dev mailing list
[email protected]
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com

Reply via email to