美文网首页
如何为元组中的每个元素命名,提高程序可读性?

如何为元组中的每个元素命名,提高程序可读性?

作者: Diolog | 来源:发表于2019-02-07 13:25 被阅读0次

如何为元组中的每个元素命名,提高程序可读性?
实际案例

  • 学生信息系统中数据为固定格式:
    (名字,年龄,性别,邮箱地址,...)
  • 学生数量很大,为了减小存储开销,对每个学生信息用元组表示:
    ('Jim',16,'male','jim8721@gmail.com')
    ('LiLei',1,'male','LiLei@gmail.com')
    ('Lucy',16,'female','Lucy@gmail.com')
    ...
  • 访问时,我们使用索引(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','Lucy@gmail.com')

访问属性:
s.name
s.age
s.sex
s.email

测试大小

import sys
sys.getsizeof(s)
输出结果:80

sys.getsizeof(('Lucy',16,'female','Lucy@gmail.com'))
输出结果:80

sys.getsizeof(Student)
输出结果:888

存储开销比普通元组大了一点点,大了定义Student命名元组的空间,即888。

相关文章

网友评论

      本文标题:如何为元组中的每个元素命名,提高程序可读性?

      本文链接:https://www.haomeiwen.com/subject/vhnwsqtx.html