Python namedtuple 定义与参数详解

Noah
Noah
发布时间:2026-10-14 | 4人浏览过
原创

本文详细介绍Python标准库中namedtuple工厂函数的使用方法。涵盖类名与字段名的定义、实例化及属性访问方式,并深入解析rename、defaults和module等高级参数的配置技巧,帮助开发者高效构建带字段名的元组对象。

具名元组的基本定义与使用

定义具名元组需指定两个核心参数:第一个为类名字符串,第二个为字段名定义。字段名可通过可迭代对象(如列表或元组)提供,也可使用空格分隔的字符串形式传入。


Card = collections.namedtuple("Card", ("rank", "suit"))
Card = collections.namedtuple("Card", "rank suit")

在实例化对象时,需将具体的字段值作为参数序列传递给构造函数,以完成对象的创建。


card_test = Card("J", "hearts")

访问具名元组的属性时,支持两种语法:既可以使用点运算符(.)通过字段名直接获取值,也可以使用整数索引进行取值。


print(card_test.rank)
print(card_test[1])

namedtuple工厂函数参数详解

知识点扩展:

具名元组的定义

Python标准库中的collections模块提供了namedtuple工厂函数,该函数用于创建带有明确字段名称的元组类型,从而提升代码的可读性和维护性。

工厂函数参数详解

变量名 = namedtuple(typename, field_names, *, rename=False, defaults=None, module=None)

namedtuple工厂函数的参数详解:

typename:指定生成的具名元组类的名称,类型必须为字符串。

field_names:定义该元组包含的字段名称。此参数支持两种格式:

  • 内部元素均为字符串的可迭代对象,例如列表或元组;

例如['商品','单价','数量']或('商品','单价','数量')

  • 以英文逗号','分隔的长字符串。此时字段名必须符合特定的命名规范:

例如'商品,单价,数量'

字段名命名规则:

  • 不能与Python的关键字重名。
  • 字段名不能以下划线开头。
  • 必须以字母(包含汉字)开头,后续字符可由字母、数字或下划线组成。

rename:默认值为False,表示必须显式指定所有字段名。若设置为True,当出现重复字段名或非法字段名时,系统会自动将其重命名为'_索引值'的形式。

defaults:用于设置字段的默认值,可以是列表或元组。当定义的字段数量大于defaults中提供的元素数量时,剩余靠后的字段将自动获得对应的默认值。

例如,若字段名为'a','b','c'共3个,而defaults仅提供了'1','2'两个值,则'b'的默认值为'1','c'的默认值为'2'。

module:指定该具名元组所属的模块名称,默认值为'__main__'。

到此这篇关于python定义具名元组实例操作的文章就介绍到这了,更多相关python如何定义具名元组内容请搜索本站以前的文章或继续浏览下面的相关文章希望大家以后多多支持本站!

相关标签:

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表