美文网首页python 实战实验室程序员大数据 爬虫Python AI Sql
py编程技巧-1.2- 如何为元组中每个元素命名,提高程序可读性

py编程技巧-1.2- 如何为元组中每个元素命名,提高程序可读性

作者: 天涯明月笙 | 来源:发表于2017-03-24 11:05 被阅读206次

实际应用场景:
学生信息系统中数据为固定格式,使用元组来存储,操作速度快。但访问时,我们使用索引(index)访问,大量索引降低程序可读性。如何解决该问题?

普通做法:

student = ('mtianyan',18,'male','1147727180@qq.com')

# name
print student[0]

# age 
print student[1] >= 10;

# sex
print student[2] == 'male'

问题:索引值很难看,不能明白到底是什么。

C语言实现:

c: 采用宏定义枚举类型

#define NAME 0
#define AGE 1
enum Student(
    NAME,
    AGE,
    SEX,
    )

方案一:python模仿c语言枚举类型,定义一系列数值常量:


# NAME = 0
# AGE = 1
# SEX = 2
# EMAIL = 3

#采用列表拆包形式
NAME, AGE , SEX ,EMAIL = xrange(4)
student = ('mtianyan',18,'male','1147727180@qq.com')

print student[NAME]

print student[EMAIL]

方案二: 使用标准库中collections.nametuple替代内置的tuple

from collections import namedtuple

# 类的工厂
Student = namedtuple('student',['name','age','sex','email'])

s1 = Student('mtianyan',18,'male','1147727180@qq.com')
print s1
s2 =  Student(name ='mtianyan',age =18,sex = 'male',email = '1147727180@qq.com')
print s2

print s1.name
print s2.name

#任何使用普通元组的地方都可以使用这一替换
print isinstance(s1,tuple)

相关文章

网友评论

    本文标题:py编程技巧-1.2- 如何为元组中每个元素命名,提高程序可读性

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