首页 > 编程语言 >Python中的数据类dataclass详解

Python中的数据类dataclass详解

时间:2022-09-22 17:35:13浏览次数:43  
标签:__ ... name Python self Player 详解 dataclass age

1.为什么需要数据类

1.1 ☹️内置数据类型的局限

假设我们现在遇到一个场景, 需要一个数据对象来保存一些运动员信息.

可以选择使用基本的数据类型tuple或者dict实现. 如:创建一个球员jordan, 信息包括球员姓名, 号码, 位置, 年龄.

使用tuple

In [1]: jordan = ('Micheal Jordan', 23, 'PG', 29)
In [2]: jordan[0]
Out[2]: 'Micheal Jordan'

劣势: 创建和取值基于位置, 需要记住坐标对应的信息.

使用dict

In [3]: jordan = {'name': 'Micheal Jordan', 'number': 23, 'position': 'PG', 'age': 29}
In [4]: jordan['position']
Out[4]: 'PG'

使用字典之后, 获取信息时会相对直观, 但是相较于字典的括号语法 jordan["position"] 我们更希望可以用类似获取属性一样使用 jordan.postion.

劣势: 无法对数据属性名进行控制,

少值或者错值,如, jordan = {'name': 'Micheal Jordan', 'NUMBER': 23} 一样可以创建成功.

1.2

标签:__,...,name,Python,self,Player,详解,dataclass,age
From: https://www.cnblogs.com/hanfe1/p/16720178.html

相关文章

  • 进入python的世界_day2_工欲善其事必先利其器
    写在开头,昨天是初步了解了typora文本编辑器及markdown语法,今天主要是了解计算机构成部分的功能、认识python以及初步环境搭建一、计算机三大核心硬件1.CPU(中央处理器c......
  • python-模块-模块导入之相关函数
    1.python变量作用域一个Python表达式可以访问局部命名空间和全局命名空间里的变量。如果一个局部变量和一个全局变量重名,则局部变量会覆盖全局变量。每个函数都有自己......
  • Python进阶篇03-内置函数
    内置函数abs()返回数字的绝对值语法:abs(x),x为数值表达式:整数、浮点数、复数返回值:返回x的绝对值,若x为复数,则返回复数的大小>>>abs(-5)5>>>abs(-12.27)12.27>>>a......
  • Python实现单例模式
    单例模式介绍:单例模式是一种常用的软件设计模型,该模式的主要目的是确保某一个类只有一个实例存在。当你希望在整个系统中,某个类只能出现一个实例时,单例对象就能派上用场。......
  • parted命令详解-分区
    parted命令详解-分区1、选择要分区的硬盘,此处为/dev/sdbroot@ubuntu-virtual-machine:~#parted/dev/sdbGNUParted3.2使用/dev/sdb欢迎使用GNUParted!输入'h......
  • python 使用smtp发送邮件通知
    python使用SMTP发送邮件通知1.python版本python3.6.82.发送邮件类importsmtplibimporttracebackfromemail.mime.textimportMIMETextclassEmailSend(ob......
  • python进阶——装饰器
    万物皆对象介绍装饰器之前,我们需要理解一个概念:在介绍装饰器前,我们需要理解一个概念:在Python开发中,一切皆对象。什么意思呢?就是我们在开发中,无论是定义的变量(数字、字......
  • Python3交叉编译步骤(二)-三方库的交叉编译
    一.项目场景在cortex-A9主板上运行python3,能够使用常用的三方库二.配置主机环境:ubuntu-18.04-x86_64(虚拟机)交叉编译链:arm-linux-gnueabihf-gcc开发板:cortex-A9(armv7l)三.......
  • MySQL存储引擎中的MyISAM和InnoDB区别详解
    MyISAM是MySQL的默认数据库引擎(5.5版之前),由早期的ISAM(IndexedSequentialAccessMethod:有索引的顺序访问方法)所改良。虽然性能极佳,但却有一个缺点:不支持事务处理(transacti......
  • python解释器下载与安装+配置环境变量
    一.python解释器的下载与安装......