python之命名元组的好处

collections.namedtuple() 命名元组的一个主要用途是将你的代码从下标操作中解脱出来
举例使用
# 使用
from collections import namedtuple
Subscriber = namedtuple('Subscriber', ['addr', 'joined'])  # 需要传递一个类型名和你需要的字段给它,然后它就会返回一个类
sub = Subscriber('[email protected]', '2012-10-19')  # 你可以初始化这个类,为你定义的字段传递值
print(sub.addr,sub.joined)  # [email protected] 2012-10-19

下表操作与命名元祖相比:
下标操作通常会让代码表意不清晰,并且非常依赖记录的结构,即很依赖索引数值,添加了新的列的时候你的代码可能就会出错了,而且使得你的代码难以阅读
下面是使用命名元组的版本:
Stock = namedtuple('Stock', ['name', 'shares', 'price'])
def compute_cost(records):
    total = 0.0
    for rec in records:
        s = Stock(*rec)   # 元祖打散
        total += s.shares * s.price   # 直接通过名称取值 而不是 total += rec[1] * rec[2]
    return total
 

猜你喜欢

转载自www.cnblogs.com/zzy-9318/p/10423176.html