[Python-Dev] Impact of Namedtuple on startup time (original) (raw)
Ethan Furman ethan at stoneleaf.us
Mon Jul 17 19:17:57 EDT 2017
- Previous message (by thread): [Python-Dev] Impact of Namedtuple on startup time
- Next message (by thread): [Python-Dev] Impact of Namedtuple on startup time
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
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
- Previous message (by thread): [Python-Dev] Impact of Namedtuple on startup time
- Next message (by thread): [Python-Dev] Impact of Namedtuple on startup time
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]