namedtuple 避免了元组不知道每个索引的值代表的含义的尴尬, 给元组的每一个索引指定一个名称,调用时根据名称调用,同时也可以使用原来的下标方式访问,看例子。
# 命名元组的创建和访问
from collections import namedtuple
Circle = namedtuple('Circle', ['x', 'y', 'radius'])
circle = Circle(1, 2, 3)
print(circle.x)
print(circle.y)
print(circle[2])
# 另外一种方式创建对象实例
circle1 = Circle._make([5,6,7])
print(circle1)
# 修改命名元组的值
circle = circle._replace(x=10)
print(circle.x)
# 命名元组转换成字典
circle = circle._asdict()
print(circle)
for k,v in circle.items():
print(k,v)
# 列出命名元组的所有字段
circle._fields
# 查看该对象的类的创建代码,是一个格式化的字符串
print(user._source)