python namedtuple

来源:互联网 发布:软件详细设计例题 编辑:程序博客网 时间:2024/05/18 03:12

namedtuple(具名元组)类型非常容易定义出精简而又不可变类型数据


collections.namedtuple()函数实际上是一个返回 Python 中标准元组类型子类的一个工厂方法。需要传递一个类型名和你需要的字段给它,然后它就会返回一个类,你可以初始化这个类。

>>> from collections import namedtuple>>> Student = namedtuple('Student', ('name', 'age', 'sex'))>>> tom = Student('Tom', '12', 'meal')# 按位置指定其中各项>>> lisa = Student(name='Lisa', age=12, sex='female')# 采用关键字来指定>>> tom.name# 通过属性名称访问'Tom'>>> tom.sex 'meal'>>> lisa.name'Lisa'>>> lisa.age 12>>> lisa[0]'Lisa'>>> lisa[1]12>>> [ i for i in lisa ]['Lisa', 12, 'female']>>> len(lisa)3


由于元组的属性都带有名称,所以当需求发生变化,以致要给简单的数据容器添加新的行为时,很容易就能从namedtuple迁移到自己定义的类

局限

  1. namedtuple无法指定各参数的默认值。对于可选属性比较多的数据来说,namedtuple用起来很不方便。如果这些数据并不是一系列简单的属性,那还是定义自己的类比较好。
  2. namedtuple实例的各项属性,依然可以通过下标及迭代来访问。这可能导致其他人以不符合设计者意图的方式使用这些元组,从而使以后很难把它迁移为真正的类。

原创粉丝点击