问题1:如何为元组中的每个元素命名,提高程序可读性?
假设学生信息系统中的数据格式:(名字,年龄,性别,邮箱地址),为了减少系统开销,所以使用元组表示:
student = ("Jim","16","male","jim13@qq.com")。当我们要获取性名的时候需要student[0]。首先第一student[0]我们并不能清楚的知道要的是什么属性,第二代码中充斥着student[0]、student[1]、student[2]这样子的1、2、3也不利于代码的维护。
方式一:定义类似其他语言的枚举类型,也就是定义一系列的数值常量。
定义:NAME=0,AGE = 1,SEX = 2,EMAIL = 3 ==》另外一种写法NAME,AGE,SEX,EMAIL = range(4)。我们在使用的时候就可以这样子写:
print student[NAME]来获取性名属性。
方式二:借助于标准库中的collections.namedtuple替代内置tuple
from collections import nameduple //导入
Student = nameduple('Student',['name','age','sex','email']) //创建一个新的tuple类型叫做Student,//arg1是新的类名,arg2列表索引的
student1 = Student("Jim","16","male","jim13@qq.com") //实例化
student2 = Student(name="Jim",age="16",sex="male",email="jim13@qq.com") //key实例化
使用的时候student1.name 即可得到名字。用isinstance(s,tuple) 判断student1是否是tuple类型的子类,结果为True。
得到结论:只要可以使用内置tuple的地方都可以使用这种方法。