python学习——collections模块之namedtuple

一、再介绍namedtuple之前先说一下class类

  • 在实例化一个类的时候,咱们可以用.的方式去访问属性
    python学习——collections模块之namedtuple
  • namedtuple就是有这么一个功能,可以让咱们想对象一样使用.的方式去访问属性,下面的代码和上面的代码一样
    python学习——collections模块之namedtuple
  • 但是通过namedtuple这种方式创建的对象是不能够修改属性的值的,和元组一样
  • 下面尝试修改name属性的值,结果抛出AttributeError异常
    python学习——collections模块之namedtuple
  • 也不能动态的去添加属性,否则也会抛出异常
    python学习——collections模块之namedtuple
  • 所以在用namedtuple创建类的时候,应该一开始就声明好有哪些属性
  • 在实例化的时候,可以使用数组或列表将其传进去,不过需要注意,参数前面加*
    python学习——collections模块之namedtuple
  • 也可以将字典传进去,不过参数前面需要加两个**
    python学习——collections模块之namedtuple
  • 关于***可以查看python *args,和 *kwargs的使用, 与 ** 解包使用
  • 另外还可以补充参数
    python学习——collections模块之namedtuple
    python学习——collections模块之namedtuple
  • 再创建类的时候,属性有几个,实例化的时候,传入的值也要有几个
    python学习——collections模块之namedtuple
  • 我们可以调用_asdict()方法,将其转为字典
    python学习——collections模块之namedtuple
  • 可以调用_replace方法修改属性的值,然后返回一个新的namedtuple对象,不会对原始数据修改,该方法只能修改已经存在的属性,不能修改不存在的属性,否则抛出异常
    python学习——collections模块之namedtuple

二、全局完