[Python-ideas] namedtuple() subclasses again
Raymond Hettinger
raymond.hettinger at gmail.com
Sun Mar 27 23:40:55 CEST 2011
On Mar 27, 2011, at 1:53 PM, Jan Kaliszewski wrote:
> Another approach could be a decorator transforming a given class into
> namedtuple with methods defined in that class:
>
> @namedtuple.from_class
> class MyRecord: # or e.g. class MyRecord(MyMixinWithSomeMethods):
> fields = 'username password'
> def __str__(self):
> return '{0.__class__}({0.username}, ...)'.format(self)
For the record (pun intended), I'm opposed to changing the API for namedtuples.
It is a mature, successful API that stands to benefit very little from from making a second way to do it.
Experimentation is great and it would be nice to have alternative recipes posted in the ASPN Cookbook or some other place, but I believe the standard library is the wrong place to fiat in a second way to create them. If a new recipe gains traction, we can link to it from the docs.
Python development is currently suffering from excess enthusiasm with advanced code manipulations occurring upon instantiation -- metaclasses, decorators, and context managers are fun to play with, but no fun to debug or trace through when something goes wrong.
Raymond
More information about the Python-ideas
mailing list