我们namedtuple
这样使用:
>>> from collections import namedtuple
>>> Point = namedtuple('Point', ['x', 'y'])
>>> p=Point(1,2)
>>> p.x
1
我发现 的第一个论点namedtuple
似乎没用,因为:
首先,我们不能使用它(例如创建实例):
>>> from collections import namedtuple
>>> P = namedtuple('Point', ['x', 'y'])
>>> p = Point(1,2)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'Point' is not defined
其次,它似乎没有限制(例如,我们不必使其唯一):
>>> P1 = namedtuple('Point', ['x', 'y'])
>>> P2 = namedtuple('Point', ['x', 'y', 'z'])
>>> p1 = P1(1,2)
>>> p2 = P2(1,2,3)
>>> p1
Point(x=1, y=2)
>>> p2
Point(x=1, y=2, z=3)
我没有从手册或谷歌搜索中找到解释。这里有一个相关的问题,但它没有回答为什么namedtuple
需要第一个参数以及如何使用它或何时需要。