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)
网友评论