使用namedtuple代替tuple
参考: Raymond Hettinger在PyCon US 2015上的演讲 Beyond PEP 8 – Best practices for beautiful intelligible code
Python中的tuple是一个经常会用到的数据类型,比如在读取sql,csv数据时,但是他有一个非常大的问题就是一旦tuple中的元素个数变动了,那么代码是必然要一通大改了,而且使用下标的方式获取元素,时间长了完全不记得每个元素都是什么意义,当然,如果有一行注释来解释的话或许会好一点。比如这个段代码完全不知道p代表什么:
p = (1,2)
if p[0] > 1:
print 'xxxxxx'
if p[1] > 3:
print 'yyyyyy'其实自python 2.5开始对此问题已经有了一个解决方案,那就是namedtuple,来看一下是怎么用的:
from collections import namedtuple
Point = namedtuple('Point', ['x', 'y'])
p = Point(1,2)
if p.x >= 1:
print 'xxxxxx'
if p.y >= 3:
print 'yyyyyy'通过使用namedtuple我们可以清晰地表达出tuple中每一个元素所代表的意义了