python学习——collections模块之namedtuple

  • Post author:
  • Post category:python




一、再介绍

namedtuple

之前先说一下class类

  • 在实例化一个类的时候,咱们可以用

    .

    的方式去访问属性

    在这里插入图片描述


  • namedtuple

    就是有这么一个功能,可以让咱们想对象一样使用

    .

    的方式去访问属性,下面的代码和上面的代码一样

    在这里插入图片描述
  • 但是通过

    namedtuple

    这种方式创建的对象是不能够修改属性的值的,和元组一样
  • 下面尝试修改name属性的值,结果抛出

    AttributeError

    异常

    在这里插入图片描述
  • 也不能动态的去添加属性,否则也会抛出异常

    在这里插入图片描述
  • 所以在用

    namedtuple

    创建类的时候,应该一开始就声明好有哪些属性
  • 在实例化的时候,可以使用数组或列表将其传进去,不过需要注意,参数前面加

    *



    在这里插入图片描述
  • 也可以将字典传进去,不过参数前面需要加两个

    **



    在这里插入图片描述
  • 关于

    *



    **

    可以查看

    python *args,和 *

    kwargs的使用,

    与 ** 解包使用
  • 另外还可以补充参数

    在这里插入图片描述

    在这里插入图片描述
  • 再创建类的时候,属性有几个,实例化的时候,传入的值也要有几个

    在这里插入图片描述
  • 我们可以调用

    _asdict()

    方法,将其转为字典

    在这里插入图片描述
  • 可以调用

    _replace

    方法修改属性的值,然后返回一个新的namedtuple对象,不会对原始数据修改,该方法只能修改已经存在的属性,不能修改不存在的属性,否则抛出异常

    在这里插入图片描述



二、全局完



版权声明:本文为weixin_44024393原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。