首页 > 其他分享 >浅谈dataclass和namedtuple

浅谈dataclass和namedtuple

时间:2023-04-20 11:33:08浏览次数:39  
标签:namedtuple 浅谈 int age import print dataclass Valley name

之前有简单讲了下命名元组,现在联系数据类再做比较下

目前发现,因为数据类和普通的类没什么差异,只是提供了简写__init__的语法糖,而且增加了类型注解,可以随意修改属性值

而命名元组无法修改,除非返回一个新的实例

 1 import dataclasses
 2 
 3 
 4 @dataclasses.dataclass()
 5 class Valley:
 6     name: str
 7     age: int = 16
 8 
 9 
10 v = Valley(name="g")
11 print(v)
12 # 可重新赋值
13 v.age = 26
14 print(v)

也可以冻结字段禁止二次赋值

 

from typing import NamedTuple


class Valley_(NamedTuple):
name: str
age: int


# v_ = Valley_(name="g", age=16)
# print(v_)
# 另外一种表达方式 同 from collections import namedtuple
V = NamedTuple("Valley_", name=str, age=int)
V = V(name="g", age=16)
print(V)
# 返回新实例
V = V._replace(age=89)
print(V)



标签:namedtuple,浅谈,int,age,import,print,dataclass,Valley,name
From: https://www.cnblogs.com/shixiaogu/p/17336178.html

相关文章

  • CDGA|浅谈“以治促用,以用促治”的数据治理战略
    数据治理夯实企业数字化转型基础。采取“以治促用,以用促治”的数据治理战略,可以充分释放了企业核心运行要素的活力。“以治促用”是指通过建立在数据治理链路及用户多维评估系统的基础上,对数据资产重新进行价值识别,推进高价值数据资产应用和中低价值资产的优化,从而提高数据资产的可......
  • 浅谈全局平衡二叉树
    首先,这个是GBT,不是GPT。其次,那个是ChatGPT,不是ChatGBT。原理我们先考虑一个经典的问题:单点修树上最大权独立集问题,也就是LuoguP4719【模板】"动态DP"&动态树分治。使用树剖维护矩阵可以做到\(O(n\log^2n)\)的复杂度,可以通过\(10^5\)的数据。那我们能不能把这个问题优化......
  • 浅谈离线数据倾斜
    作者:京东零售 荆明岚一、数据倾斜的基本概念1、什么是数据倾斜?用最通俗易懂的话来说,数据倾斜无非就是大量的相同key被partition分配到一个分区里,造成了'一个人累死,其他人闲死'的情况,这种情况是我们不能接受的,这也违背了并行计算的初衷,首先一个节点要承受着巨大的压力,而其他......
  • 浅谈我眼中的缺陷管理
    嗨,大家好,我是Luna,一名新晋的软件测试小菜鸟。众所周知手工测试是软件测试类型中最常用的一种测试方法,它通过手动执行测试用例来发现软件系统中的缺陷和问题。而今天我们要讲的主角就是缺陷管理,在手工测试过程中,缺陷管理是非常非常重要的一环,它能够帮助测试人员更好地记录和跟踪缺陷......
  • 浅谈信息无障碍人才的培养
    看到这个标题,我估计很多人会想要骂我,你有什么资格来谈信息无障碍人才,你懂什么是信息无障碍么?你一个做软件的,一个搞软工的,谈什么信息无障碍。嗯,我想说,确实,我谈这个,确实有些心虚,不过,我总可以表达一下自己的观点。今年4月份,我被一个哥们拉过去,成为了深圳信息无障碍研究会的顾问,期间和......
  • 浅谈-api项目设计(上)
    从事api后端接口开发也有五六年时间了,都没有好好的整理下api项目架构模板以及如何从零开始设计。抽空写个文章记录下,顺便检查下自己对这块的理解,如有不正确的地方,欢迎底下友好交流。本文的目的是检查自己对架构设计的理解,思考架构设计的意义和常用的设计思想按照软件工程流程。......
  • 浅谈智慧水务架构及配电建设应用
    随着新时期治水方针的逐步落实,水利现代化、智能化建设已开启,物联网、图像识别、数字孪生等新技术的成熟,也为智慧水务体系的搭建提供了技术保障,新时代治水新思路正逐步得到落实。本文对智慧水务的总体架构与包含的建设内容进行研究,力图为智慧水务体系搭建及项目建设提供部分借鉴。 ......
  • 浅谈船舶交流电网绝缘监测及故障定位系统开发
     摘要:针对传统船舶电网绝缘监测装置可靠性不足、受泄漏电容的影响较大、测量范围较窄、测量准确度不高等问题,以船舶IT交流供配电网络为研究对象,建立一种能够实时监测整个电网系统对地绝缘值与泄漏电容值,实现实时故障定位的系统,并结合Hausdoff距离算法进行容错计算。结果表明:该系统......
  • 浅谈故障应急中的两个关键点
    当故障真实发生后,带来的影响不仅仅是技术层面的,更多的是业务层面的,比如用户和商家的批量投诉,交易量下跌,广告资损等等。而这些影响又会产生巨大的外部压力,并传递到技术团队,这时如果没有很好的故障应对机制,技术团队就很容易陷入慌乱,不知所措。需要做以下两方面准备:1、业务恢复预案第......
  • 浅谈对属性描述符__get__、__set__、__delete__的理解
    1、属性描述符的基础介绍1.1何为属性描述符?属性描述符是一种Python语言中的特殊对象,用于定义和控制类属性的行为。属性描述符可以通过定义__get__、__set__、__delete__方法来控制属性的读取、赋值和删除操作。通过使用属性描述符,可以实现对属性的访问控制、类型检查、计算属......