【collections】具名元组,nametuple

collections.namedtuple(typename, field_names[, verbose=False][, rename=False])

参数解释:
typename: 返回名称为typename的元组子类,元组的格式为name=value
field_names:格式为字符串序列,可以是[‘x’, ‘y’], ‘x y’, ‘x, y’这三种之一。
verbose: 如果设为True,则打印类的定义。
rename:如果设为True, 无效的field(如:python关键字,重复的field)会按照下划线加该field的index重命名,举例:

['abc', 'def', 'ghi', 'abc']  =>  ['abc', '_1', 'ghi', '_3']
>>> Point = namedtuple('Point', ['x', 'y'])
>>> Point.__doc__                   # 类的描述
'Point(x, y)'
>>> p = Point(11, y=22)             # 实例化,参数可以为位置参数或keywords形式
>>> p = Point._make([11, 22])      # 利用_make 实例化, 参数需为可迭代对象
>>> p[0] + p[1]                     # 索引操作
33
>>> x, y = p                        # 拆包
>>> x, y
(11, 22)
>>> p.x + p.y                       # 获取指定name的值
33
>>> d = p._asdict()                 # 转字典,collections.OrderedDict
>>> d['x']
11
>>> Point(**d)                      # 字典转nametuple
Point(x=11, y=22)
>>> p._replace(x=100)               # 替换指定name field
Point(x=100, y=22)

你可能感兴趣的:(【collections】具名元组,nametuple)