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
_______________________________________________
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

Reply via email to