collections.namedtuple 是 Python 标准库 collections 模块中的一个工厂函数,用于创建具有命名字段的元组子类。与普通元组相比,namedtuple 允许你通过名称访问元素,而不仅仅是通过索引,这使得代码更具可读性。
以下是 namedtuple 的一些关键点:
定义:你可以使用 namedtuple 创建一个新的元组子类,这个子类将拥有你指定的名字和字段名。
语法:namedtuple(typename, field_names, *, rename=False, defaults=None, module=None)
typename 是返回的新类的名称。field_names 可以是一个字符串、一个可迭代的对象或一个属性名到默认值的字典。rename 如果设置为 True,则无效的字段名会自动重命名。defaults 是一个可选的参数,可以为字段设置默认值。module 参数可以用来覆盖实例的 __module__ 属性。特性:
namedtuple 实例具有一些类似对象的属性,例如 _asdict() 方法,它可以将 namedtuple 转换为 OrderedDict。这是一个简单的例子,展示如何使用 namedtuple:
pythonfrom collections import namedtuple
# 定义一个新的子类 'Car',它有 'color' 和 'mileage' 字段
Car = namedtuple('Car', ['color', 'mileage'])
# 创建一个 Car 对象
my_car = Car('red', 3812.4)
# 访问字段
print(my_car.color) # 输出: red
print(my_car.mileage) # 输出: 3812.4
# 使用 _asdict() 方法转换为 OrderedDict
print(my_car._asdict()) # 输出: OrderedDict([('color', 'red'), ('mileage', 3812.4)])
请注意,从 Python 3.7 开始,推荐使用 typing.NamedTuple 或者数据类(dataclasses),因为它们提供了更好的类型检查支持和其他功能。如果你正在编写新代码并且不关心向后兼容性问题,那么可能应该考虑这些替代方案。
本文作者:君逍遥
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!