当前位置: 首页 > news >正文

python每日学19: 类vs字典

背景:今天继续学习《python学习手册》第27章《类代码编写基础》,今天着重学习一小段的内容:类vs字典,页码是798-801
字典、元组、类在记录数据时有一定的相似之处,有时可以互相替换使用。

元组和字典:

>>> rec = ('Bob', 40.5, ['dev','mgr'])
>>> print(rec[0])
Bob
>>> rec = {}
>>> rec['name'] = 'Bob'
>>> rec['age'] = 40.5
>>> rec['jobs']=['dev','mgr']
>>> print(rec['name'])
Bob

类的第一种用法,直接给类添加变量,相当于存储数据。这个比用字典和元组还方便一些,会少一些符号编码。

>>> class rec:pass>>> rec.name = 'Bob'
>>> rec.jobs = 40.5
>>> rec.jobs = ['dev','mgr']
>>> 
>>> print(rec.name)
Bob

类的第二种用法,给实例添加变量,这种方法可以记录多条数据,调用也很方便。

>>> class rec:pass>>> pers1 = rec()
>>> pers1.name ='Bob'
>>> pers1.job = ['dev','mgr']
>>> pers1.age = 40.5
>>> 
>>> pers2 = rec()
>>> pers2.name = 'Sue'
>>> pers2.jobs=['dev','cto']
>>> 
>>> pers1.name,pers2.name
('Bob', 'Sue')

类的正常用法:


>>> class Person:def __init__(self, name, jobs, age=None):self.name = nameself.jobs = jobsself.age = age>>> class Person:def __init__(self, name, jobs, age=None):self.name = nameself.jobs = jobsself.age = agedef info(self):return (self.name, self.jobs)>>> rec1 = Person('Bob',['dev','mgr'], 40.5)
>>> rec2 = Person('Sue',['dev', 'cto'])
>>> 
>>> rec1.jobs, rec2.info()
(['dev', 'mgr'], ('Sue', ['dev', 'cto']))

尽管我们也可以把函数存储到字典中,但再也没有比类更加自然和有着良好结构的地方。

相关文章:

  • 如何编写.gitignore文件
  • 万户 ezOFFICE wpsservlet SQL注入漏洞复现
  • 学区块链智能合约?来自培训学校内部的学习计划
  • Pandas处理Excel文件的实用指南 - Python开发技巧XI
  • import sys是什么
  • AR 自回归模型
  • Spring Boot项目中集成连接池及部分细节说明
  • 【开源】JAVA+Vue.js实现大学兼职教师管理系统
  • CodeFuse新开源模型荣登Big Code评测榜首!
  • MySQL原理(三)锁定机制
  • HarmonyOS 鸿蒙驱动消息机制管理
  • Python与ArcGIS系列(二十)GDAL之合并shp和geojson要素图层
  • 安装好IntelliJ IDEA点击无反应,如何解决配置文件不一致导致的启动问题
  • Linux之快速入门(CentOS 7)
  • day38_MySQL
  • conda常用的命令
  • LeetCode算法系列_0891_子序列宽度之和
  • node-sass 安装卡在 node scripts/install.js 解决办法
  • Python爬虫--- 1.3 BS4库的解析器
  • ------- 计算机网络基础
  • 技术发展面试
  • 看完九篇字体系列的文章,你还觉得我是在说字体?
  • 免费小说阅读小程序
  • 首页查询功能的一次实现过程
  • 数组的操作
  • Java数据解析之JSON
  • 阿里云ACE认证之理解CDN技术
  • 阿里云重庆大学大数据训练营落地分享
  • 移动端高清、多屏适配方案
  • ​ssh-keyscan命令--Linux命令应用大词典729个命令解读
  • ​决定德拉瓦州地区版图的关键历史事件
  • ​软考-高级-信息系统项目管理师教程 第四版【第23章-组织通用管理-思维导图】​
  • #includecmath
  • (二)hibernate配置管理
  • (附源码)springboot家庭财务分析系统 毕业设计641323
  • (算法二)滑动窗口
  • .locked1、locked勒索病毒解密方法|勒索病毒解决|勒索病毒恢复|数据库修复
  • .NET Core MongoDB数据仓储和工作单元模式封装
  • .net 程序 换成 java,NET程序员如何转行为J2EE之java基础上(9)
  • .NET 设计模式—简单工厂(Simple Factory Pattern)
  • .NetCore Flurl.Http 升级到4.0后 https 无法建立SSL连接
  • .NET使用HttpClient以multipart/form-data形式post上传文件及其相关参数
  • .php结尾的域名,【php】php正则截取url中域名后的内容
  • .php文件都打不开,打不开php文件怎么办
  • .sh 的运行
  • /bin/bash^M: bad interpreter: No such file ordirectory
  • @AliasFor注解
  • @Bean有哪些属性
  • [ABP实战开源项目]---ABP实时服务-通知系统.发布模式
  • [Android 13]Input系列--获取触摸窗口
  • [android] 练习PopupWindow实现对话框
  • [Angularjs]asp.net mvc+angularjs+web api单页应用
  • [BZOJ 4129]Haruna’s Breakfast(树上带修改莫队)
  • [C puzzle book] types
  • [C#]无法获取源 https://api.nuge t.org/v3-index存储签名信息解决方法