存在的意义
因为元组的局限性:不能为元组内部的数据进行命名,所以往往不知道该数据表达的意思
所以引入了namedtuple工厂函数,来构造一个带字段名的元组。其实例和普通的元组消耗的内存一样多,
参数说明
继承tuple的子类
namedtuple(typename, field_names=*, verboss=False, rename=False, module=None)
- typename: 元组名称
- field_names: 元组中元素的名称
- rename: 如果元素中存在Python关键字,必须设置 rename=True
示例
from collections import namedtuple
User = namedtuple('User', ['name', 'age', 'gender'])
u = User('Tom', 18, 'male')
print(u.name, u.age, u.gender)
# 通过一个list来创建User对象,需使用“_make”方法
user = User._make(['JAM', 20, 'MALE'])
print(user.name, user.age, user.gender)
# 修改对象属性
user = user._replace(age=21)
print(user)
# 将对象转为字典
print(user._asdict())