On 07/17/2017 03:27 PM, Greg Ewing wrote:
Barry Warsaw wrote:
namedtuple is great and clever, but it’s also a bit clunky. It has a weird
signature and requires a made up type name.
Maybe a metaclass could be used to make something
like this possible:
class Foo(NamedTuple, fields = 'x,y,z'):
...
Then the name is explicit and you get to add methods
etc. if you want.
From the NamedTuple tests from my aenum library [1]:
LifeForm = NamedTuple('LifeForm', 'branch genus species', module=__name__)
class DeathForm(NamedTuple):
color = 0
rigidity = 1
odor = 2
class WhatsIt(NamedTuple):
def what(self):
return self[0]
class ThatsIt(WhatsIt):
blah = 0
bleh = 1
class Character(NamedTuple):
# second argument is doc string
name = 0
gender = 1, None, 'male'
klass = 2, None, 'fighter'
class Point(NamedTuple):
x = 0, 'horizondal coordinate', 0
y = 1, 'vertical coordinate', 0
class Point(NamedTuple):
x = 0, 'horizontal coordinate', 1
y = 1, 'vertical coordinate', -1
class Color(NamedTuple):
r = 0, 'red component', 11
g = 1, 'green component', 29
b = 2, 'blue component', 37
Pixel1 = NamedTuple('Pixel', Point+Color, module=__name__)
class Pixel2(Point, Color):
"a colored dot"
class Pixel3(Point):
r = 2, 'red component', 11
g = 3, 'green component', 29
b = 4, 'blue component', 37
--
~Ethan~
[1] https://pypi.python.org/pypi/aenum
_______________________________________________
Python-Dev mailing list
Python-Dev@python.org
https://mail.python.org/mailman/listinfo/python-dev
Unsubscribe:
https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com