[Python-Dev] namedtuple implementation grumble
dw+python-dev at hmmz.org
dw+python-dev at hmmz.org
Sun Jun 8 21:37:46 CEST 2014
On Sun, Jun 08, 2014 at 03:13:55PM -0400, Eric V. Smith wrote:
> > The current implementation is also *really* easy to understand,
> > while writing out the dynamic type creation explicitly would likely
> > require much deeper knowledge of the type machinery to follow.
> As proof that it's harder to understand, here's an example of that
> dynamically creating functions and types:
Probably I'm missing something, but there's a much simpler non-exec
approach, something like:
class _NamedTuple(...):
...
def namedtuple(name, fields):
cls = tuple(name, (_NamedTuple,), {
'_fields': fields.split()
})
for i, field_name in enumerate(cls._fields):
prop = property(functools.partial(_NamedTuple.__getitem__, i)
functools.partial(_NamedTuple.__setitem__, i))
setattr(cls, field_name, prop)
return cls
David
More information about the Python-Dev
mailing list