namedtuple
namedtuple 是 collections 模块里面继承自tuple的系统内置类型。
使用方式:
collections.namedtuple(typename,field_names[, verbose=False][, rename=False])
namedtuple 返回用 typename 命名的子类元组。
这个新的子类是用来创建一个类似元组的对象,但是可以用属性来访问,同时可以索引,可以迭代。
这里的 field_names 可以写成 ['x','y'] , ['x y'] ,或者 ['x, y']
如果 rename=true ,不合法的fieldname会自动被改成位置名。
如
['abc', 'def', 'ghi','abc']
会被转换成
['abc', 'def', 'ghi','abc']
,因为关键字def作属性名不合法,abc则是因为重复。
如果 verbose=true ,会创建一个类。
下面举一个例子:
point = namedtuple('point',['x','y'])
>>> p = point(11,y=22)
>>> p[0]+p[1] #和普通元组一样可以使用索引
33
>>> x,y = p #可以解包
>>> x, y
(11, 22)
>>> p.x+p.y #可以用属性来访问元素
33
>>> p
point(x=11, y=22)