这里介绍Python的namedtuple具名元组
实践
namedtuple是collections模块中的一个工厂函数,使用此函数可以创建一个相应字段名的元组子类。换言之,其构建了一个具有字段名的元组和一个有名字的类。故当你准备设计一个类时,其只有属性而没有方法。仅保存数据,并不进行修改。那么可以使用具名元组来代替这个类。同时,还可以将其视为Java中的枚举类,用于定义常量
这里我们创建一个名为 StuInfo 的具名元组子类。将该类对象赋值给一个名为StuInfo的变量。对于指向该类对象的变量而言,习惯上我们将该变量名称和类的名称保持一致
1 | import collections |
具名元组同样有元组的不可变性,尝试修改值将引发异常
1 | # 具名元组 同样有元组的不可变性,尝试修改值将引发异常 |
这里再补充下具名元组的其他特性
- 类属性_fields :返回该类所有字段名构成的元组
- 类方法_make() :用于创建该类的实例。其接受一个可迭代对象,作为构建实例的参数
- 实例方法_asdict() :其可以将具名元组转换为字典
1 | import collections |
参考文献
- Python编程·第3版:从入门到实践 Eric Matthes著
- Python基础教程·第3版 Magnus Lie Hetland著
- 流畅的Python·第1版 Luciano Ramalho著