Python面试题更新 2026-08-05

请说明 Python 中 namedtuple 的用途,并演示其定义与使用方法。

编码实现技术原理Python

考察说明

考查对 Python collections.namedtuple 的理解和使用能力。

回答思路

  1. 【回答框架 1】namedtuple 是 collections 模块中的工厂函数,它返回一个元组子类,该子类同时支持按字段名访问和按索引访问,使代码更可读。
  2. 【回答框架 2】定义方式:使用 namedtuple('类名', '字段名1 字段名2 ...') 或传入可迭代对象,例如 Point = namedtuple('Point', ['x', 'y'])。实例化时按字段顺序传值。
  3. 【回答框架 3】使用时可以通过点号访问字段,例如 p.x;也可以像普通元组一样通过索引访问,如 p[0];还支持解包、迭代等元组特性。
  4. 【回答框架 4】namedtuple 还提供 _replace 方法返回新实例(用于修改字段)、_asdict 方法转换为 OrderedDict、_fields 属性获取字段名等实用方法。
  5. 【关键点 1】namedtuple 是元组的子类,具备元组的所有特性,同时提供字段名访问。
  6. 【关键点 2】定义方法为 collections.namedtuple('类名', ['字段1', '字段2']) 或使用空格分隔字符串。
  7. 【关键点 3】常用方法包括 _replace、_asdict、_fields 等,注意它们以下划线开头。
  8. 【易错点 1】namedtuple 是不可变的,不能直接给字段赋值,需通过 _replace 创建新实例。
  9. 【易错点 2】注意命名冲突:字段名不能以数字开头,也不能与 Python 关键字冲突。