• namedtuple的简单使用


    """
        factory function for creating tuple subclasses with named fields
        namedtuple 是tuple的子类,
        在tuple的基础上增添了许多功能, 最主要是可以把它看成一个类来使用
    """
    from  collections import namedtuple
    
    # 使用namedtuple的第一种方式
    User = namedtuple("User", ['name', 'age', 'height'])  # 这就相当于定义了一个User类,且它有三个属性name,age,height
    user_tuple = ('张三', '12', '186')
    user = User(*user_tuple)  # 使用元组,创建一个User对象 ,且将user_tuple中的元素依次赋值给user, 注意*号
    print(user.name)  # 张三 直接使用.xx 取值, 很方便啦
    
    # 使用namedtuple的第二种方式
    User = namedtuple("User", ['name', 'age', 'height', 'edu'])
    user_tuple = ('张三', 12, 186)
    # user = User(*user_tuple,'doctor')   # 定义的User是四个属性,但是user_tuple中只有三个值, 但是可以在创建对象时添加其余属性
    user = User(*user_tuple, edu='doctor')  # 定义的User是四个属性,但是user_tuple中只有三个值, 但是可以在创建对象时添加其余属性
    print(user.edu)  # doctor  一样可以取到值
    name, age, *other = user  # 支持拆包操作
    print(name, age, other)  # 张三 12 [186, 'doctor']
    
    # 使用namedtuple第三种方式
    User = namedtuple("User", ['name', 'age', 'height', 'edu'])
    user_tuple = ('张三', 12, 186, 'master')
    user = User._make(user_tuple)  # 使用_make方法创建对象实例,不过需要注意的是user_tuple中数据个数一定要与User中声明的属性个数相等
    print(user)  # User(name='张三', age=12, height=186, edu='master')
    
    
    # 使用namedtuple的第四种方式
    User = namedtuple("User", ['name', 'age', 'height', 'edu'])
    user_tuple = ('张三', 12, 186, 'master')
    user = User._make(user_tuple)
    user_dict = user._asdict()  # 转换为一个排序的dict
    print(user_dict)  # OrderedDict([('name', '张三'), ('age', 12), ('height', 186), ('edu', 'master')])
    
    # 注意: 以上示例使用user_tuple的地方都可以换成一个iterable对象
  • 相关阅读:
    Entity Framework 批量操作
    Tsak多线程学习记录
    .net webservice 动态更换地址
    .NET EF Core2.0 (DBFirst)使用与配置
    MVC发布IIS后提示未配置默认文档
    未能加载文件或程序集“Microsoft.Web.Infrastructure, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35”或它的某一个依赖项。系统找不到指定的文件。
    Redis教程
    使用git将项目上传到github
    Redis集群(一)搭建Cluster模式[超简单]
    Redis 常见5大数据类型结构,附录3个数据类型
  • 原文地址:https://www.cnblogs.com/z-qinfeng/p/12038424.html
Copyright © 2020-2023  润新知