python学习——collections模块之namedtuple
分类:
文章
•
2022-10-09 17:28:51
一、再介绍namedtuple
之前先说一下class类
- 在实例化一个类的时候,咱们可以用
.
的方式去访问属性
- 而
namedtuple
就是有这么一个功能,可以让咱们想对象一样使用.
的方式去访问属性,下面的代码和上面的代码一样
- 但是通过
namedtuple
这种方式创建的对象是不能够修改属性的值的,和元组一样
- 下面尝试修改name属性的值,结果抛出
AttributeError
异常
- 也不能动态的去添加属性,否则也会抛出异常
- 所以在用
namedtuple
创建类的时候,应该一开始就声明好有哪些属性
- 在实例化的时候,可以使用数组或列表将其传进去,不过需要注意,参数前面加
*
号
- 也可以将字典传进去,不过参数前面需要加两个
**
号
- 关于
*
和**
可以查看python *args,和 *kwargs的使用, 与 ** 解包使用
- 另外还可以补充参数

- 再创建类的时候,属性有几个,实例化的时候,传入的值也要有几个
- 我们可以调用
_asdict()
方法,将其转为字典
- 可以调用
_replace
方法修改属性的值,然后返回一个新的namedtuple对象,不会对原始数据修改,该方法只能修改已经存在的属性,不能修改不存在的属性,否则抛出异常
二、全局完