Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >一日一技:简化数据对象的初始化方式

一日一技:简化数据对象的初始化方式

作者头像
青南
发布于 2019-01-09 08:50:26
发布于 2019-01-09 08:50:26
36400
代码可运行
举报
文章被收录于专栏:未闻Code未闻Code
运行总次数:0
代码可运行

使用类来储存数据比使用字典储存数据有诸多的优势,这一点我在我的博客中多次做了说明。

Python 3.7之前,传统的写法为:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
class Person(object):
    name = None
    age = None
    salary = None

kingname = Person()
kingname.name = 'kingname'
kingname.age = '?'
kingname.salary = 9999999

实际上,在Python 3.7之前,可以把上面的代码进一步精简:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
class Person2(object):
    def __init__(self, **kwargs):
        self.__dict__.update(kwargs)

kingname = Person2(name='kingname', age='?', salary=9999999)

这两种效果是完全一样的。当然第二种方式也是有弊端的,就是如果类里面的属性太多,你在初始化的时候可能会不记得有哪些属性,如果发生了拼写错误,也难以发觉,同时也不能很好的利用到IDE的自动补全功能。所以请自行权衡取舍。

在Python 3.7以后,官方引入了一个dataclass,写法又更加的简化了。关于

dataclass,我将会单独写一篇播客来介绍。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2018-12-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 未闻Code 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
一日一技:在Python类里面初始化自己
这里的 __init__叫做 构造函数。它负责在类初始化为实例的时候,初始化必要的数据。如下图所示:
青南
2019/08/09
1.7K0
一日一技:在Python中使用类型标注
由于Python是动态语言,不需要为变量提前设定类型,这为开发提供便捷的同时也带来了一些麻烦。
青南
2019/02/27
2.2K0
一日一技:在Python中使用类型标注
用好 Python 标准库!少写几百行。
整体上来讲 Python 这门语言还是比较注重开发者体验的,一方面表现在其简洁的语法上,另一方面就是其丰富的标准库模块。Python-3.7 版本为标准库引入了一个新的模块 dataclasses ,用这个新模块可以让我们本就简洁的代码再简短不少。
初代庄主
2023/02/20
6020
用好 Python 标准库!少写几百行。
python学习笔记6.7-简化数据结构的初始化过程
我们每编写一个类的时候都需要编写一个初始化函数,那么如果编写的类当做数据结构来用,它们的初始化结构就是一样的,例如: class Stock: def __init__(self,name,s
锦小年
2018/01/02
7170
Python 基础 (-)
Python 单词是“大蟒蛇”的意思。但是龟叔不是喜欢蟒蛇才起这个名字,而是正在追剧:英国电视喜剧片《蒙提·派森的飞行马戏团》(Monty Python and the Flying Circus)。
Dar_Alpha
2018/10/09
5.1K0
Python100Days
这可能是我目前发现最好最好的Python教程了,故整理至我的博客。 原项目GitHub地址https://github.com/jackfrued/Python-100-Days
一点儿也不潇洒
2018/08/07
10.1K0
Google Python代码风格指南
这是关注我的一位粉丝翻译的Google Python代码风格指南,很全面。可以作为公司的code review 标准,也可以作为自己编写代码的风格指南。希望对你有帮助。
double
2021/03/12
1.3K0
Python入门笔记(代码中成长)
运行一下程序。 让我们来看一下输出的结果,并做一下对应的分析: 当我们使用 / 进行除法时,无论参与除法的值是小数还是整数, 运算的结果都是精确的可以带有小数部分的数。 当我们使用 // 进行除法时,如果参与运算的值都是整数,则除法为取整除,结果不会含有小数部分。 代码:
用户7886150
2020/11/27
6430
100天学会python
目前我使用的Python 3.7.x的版本是在2018年发布的,Python的版本号分为三段,形如A.B.C。其中A表示大版本号,一般当整体重写,或出现不向后兼容的改变时,增加A;B表示功能更新,出现新功能时增加B;C表示小的改动(例如:修复了某个Bug),只要有修改就增加C。如果对Python的历史感兴趣,可以阅读名为《Python简史》的网络文章。
她的店里只卖樱花
2023/01/06
3.4K0
100天学会python
利用Python进行数据分析笔记
本书讲的是利用Python进行数据控制、处理、整理、分析等方面的具体细节和基本要点。我的目标是介绍Python编程和用于数据处理的库和工具环境,掌握这些,可以让你成为一个数据分析专家。虽然本书的标题是“数据分析”,重点却是Python编程、库,以及用于数据分析的工具。这就是数据分析要用到的Python编程。
CtrlX
2023/03/21
5.4K0
利用Python进行数据分析笔记
最全面、最详细web前端面试题及答案总结
本章是HTML考点的⾮重难点,因此我们采⽤简略回答的⽅式进⾏撰写,所以不会有太多详细的解释。我们约定,每个问题后我们标记『✨ 』的为⾼频⾯试题 doctype的作⽤是什么?✨ DOCTYPE是html5标准⽹⻚声明,且必须声明在HTML⽂档的第⼀⾏。来告知浏览器的解析器⽤什么⽂档标准解析这个 ⽂档,不同的渲染模式会影响到浏览器对于 CSS 代码甚⾄ JavaScript 脚本的解析 ⽂档解析类型有: BackCompat:怪异模式,浏览器使⽤⾃⼰的怪异模式解析渲染⻚⾯。(如果没有声明DOCTYPE,默认就是这个模式) CSS1Compat:标准模式,浏览器使⽤W3C的标准解析渲染⻚⾯。 IE8还有⼀种介乎于上述两者之间的近乎标准的模式,但是基本淘汰了。
全栈程序员站长
2022/08/01
8.3K0
相关推荐
一日一技:在Python类里面初始化自己
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验