如何为元组中的每个元素命名,提高程序可读性?
程序员文章站
2022-04-18 14:32:15
...
如何为元组中的每个元素命名,提高程序可读性?
实际案例
- 学生信息系统中数据为固定格式:
(名字,年龄,性别,邮箱地址,...) - 学生数量很大,为了减小存储开销,对每个学生信息用元组表示:
('Jim',16,'male','[email protected]')
('LiLei',1,'male','[email protected]')
('Lucy',16,'female','[email protected]')
... - 访问时,我们使用索引(index)访问,大量索引降低程序可读性.
如何解决这个问题?
解决方案:
- 方案1:定义类似与其他语言的枚举类型,也就是定义一系列数值常量.
- 方案2:使用表中库中collections.namedtuple替代内置tuple
方案1:常量定义
NAME = 0
AGE = 1
SEX = 2
EMAIL = 3
或者:
NAME,AGE,SEX,EMAIL = range(4)
方案2:namedtuple
from collections import namedtuple
Student = namedtuple('student',['name','age','sex','email'])
s = Student('Lucy',16,'female','[email protected]')
访问属性:
s.name
s.age
s.sex
s.email
测试大小
import sys
sys.getsizeof(s)
输出结果:80
sys.getsizeof(('Lucy',16,'female','[email protected]'))
输出结果:80
sys.getsizeof(Student)
输出结果:888
存储开销比普通元组大了一点点,大了定义Student命名元组的空间,即888。