python高效編程實踐-如何為元組中的每個元素命名, 提高程序可讀性(2/50)
學習內容:如何為元組中的每個元素命名, 提高程序可讀性
student = (Jim, 16, male, jim@gmail.com)n# namenprint(student[0]) # Jimn# agenprint(student[1]) # 16n# sexnprint(student[2]) # malen
訪問時,我們試用了0、1、2的索引值來訪問相應的元素,而這樣的程序可讀性是極差的,隨著欄位的增加,問題會越來越明顯。
解決方案1:
使用類似C語言的預定義,在python中定義一些常量
NAME = 0nAGE = 1nSEX = 2nnstudent = (Jim, 16, male, jim@gmail.com)n# namenprint(student[NAME]) # jimn# agenprint(student[AGE]) # 16n# sexnprint(student[SEX]) # malen
通過定義常量,程序的可讀性得到了提升,也不會因為欄位數量的增加而影響。
其中在定義常量時,我們還可以使用一個小技巧
NAME, AGE, SEX, EMAIL = range(4) # 一句語句賦初始值n
解決方案2:
使用標準庫中的collections.namedtuple代替內置的tuple
from collections import namedtuplennstudent = namedtuple(Student, [name, age, sex, email])ns1 = student(Jim, 16, male, jim@gmail.com)nprint(s1) # Student(name=Jim, age=16, sex=male, email=jim@gmail.com)ns2 = student(name=Bob, age=20, sex=female, email=bob@gmail.com)nprint(s2.name) # Bobnprint(s2.age) # 20n
namedtuple是tuple的子類,意味著有tuple類的所有方法。可以相同使用
print(isinstance(s1,tuple)) # Truen
推薦閱讀:
※【掃盲】五分鐘了解Python
※即將發布的 tornado 2.0 將會帶來哪些特性?
※優化 Python 性能:PyPy、Numba 與 Cython,誰才是目前最優秀的 Python 運算解決方案?
TAG:Python |