命名元组
1、命名元组也叫具名元组
可以通过名称来访问序列中的元素,摆脱对位置的依赖,他本身是一个工厂函数
2、应用1
实例化元组返回的类,其内存占用要比普通类实例要小的多,因为前者实例的属性不通过字典进行管理
1 from collections import namedtuple 2 3 # 返回可实例化的类 4 P = namedtuple("人", ["姓", "教育背景"]) 5 6 7 class Person: 8 # 类实例化,字段赋值,可以理解为普通类实例后返回调用__init__方法 9 p_one = P("陈", "本科") 10 p_two = P("谷", "研究生") 11 12 13 if __name__ == '__main__': 14 # 访问字段值 15 print(Person.p_one.教育背景) 16 # 属性转为字典输出 17 print(Person.p_two._asdict())
output:
本科
{'姓': '谷', '教育背景': '研究生'}
应用2
和数据类有点相似,只不过属性的存储方式不一样,数据类和普通的类实例无异,只不过省去了__init__方法的书写
1 from typing import NamedTuple 2 3 4 class Valley(NamedTuple): 5 name: str 6 age: int 7 8 9 if __name__ == '__main__': 10 v = Valley('g', 26) 11 print(v.name)
output:
g
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!