18 Feb
2013
18 Feb
'13
8:32 p.m.
On 02/18/2013 03:32 PM, John Reid wrote:
I can do
tuple([1,2,3])
but not:
from collections import namedtuple namedtuple('B', 'x y z')([1,2,3])
I get a TypeError: __new__() takes exactly 4 arguments (2 given) However I can do:
namedtuple('B', 'x y z')._make([1,2,3])
So namedtuple's _make classmethod looks a lot like tuple's __new__(). What's the rationale for this? Wouldn't it be better to share the same signature for __new__?
Sharing the constructor signature with tuple would break the common case of: namedtuple('B', 'x y z')(1, 2, 3)