namedtuple是collections中的一个函数:
namedtuple这个子类,这可以理解为元祖的升级版(因此数值不可变)
定义方式如下:
collections.namedtuple(typename, field_names, *, verbose=False, rename=False, module=None)
typename: 代表新建的一个元组的名字。
field_names: 是元组的内容,是一个类似list的[‘x’,‘y’]
使用方法如下:
from collections import namedtuple
'''
namedtuple这个子类,这可以理解为元祖的升级版(因此数值不可变)
collections.namedtuple(typename, field_names, *, verbose=False, rename=False, module=None)¶
typename: 代表新建的一个元组的名字。
field_names: 是元组的内容,是一个类似list的[‘x’,‘y’]
'''
Point = namedtuple("Point", ['x', 'y']) # 初始化一个具名元组 Point
p1 = Point(2, 3) # 实例化一个具名元组 Point 对象 p1
print(p1) # 可读 (readable __repr__ with a name=value style)
#输出为:Point(x=2, y=3)
print(p1.x) # 通过字段名获取元素值/字段值 (fields also accessible by name)
#输出为:2
print(p1[0]) # 通过索引获取元素值/字段值 (indexable like the plain tuple (2, 3))
#输出为:2
for i in p1: # 通过迭代获取元素值/字段值
print(i, end=' ')
#输出为:2 3
print('\n')
a, b = p1 # 能够像普通 tuple 一样解绑 (unpack like a regular tuple)
print(a, b)
#输出为:2 3