effective python学习笔记_类与接口
用组合类实现多层结构而不用内置类型
例子:成绩单,存储学生各科成绩多个然后加权重,如果用字典类型会导致字典有多层嵌套结构
思想 当用内置类型如字典元组等结构出现超过二层的多层嵌套结构时,读起来会比较难懂,此时建议通过定义一批新类实现一套新体系,这样可以定义良好清晰的接口,并合理封装数据
怎么做 多个属性时,将每个属性定义为实例属性,可以考虑namedtuple(namedtuple无法对属性设定默认值,如果需要可以使用内置的dataclasses模块)
namedtuple局限 1实例属性无法设置默认值 2虽然namedtuple但仍可以通过下标访问实例属性
改前

改后




虽然代码多了,但看的应该更清晰
相关文章:
effective python学习笔记_类与接口
用组合类实现多层结构而不用内置类型 例子:成绩单,存储学生各科成绩多个然后加权重,如果用字典类型会导致字典有多层嵌套结构 思想 当用内置类型如字典元组等结构出现超过二层的多层嵌套结构时,读起来会比较难懂,此时…...
如何去除字符串两侧的空白字符?
TRIM函数会去掉字符串左侧和右侧的空格,语法是:TRIM(字符串) excel中,TRIM函数能去掉字符串左侧和右侧的空格,它的ASCII码是32。 以下设定一个字符串组合,它的第一个字符中空格,最后一个字符是换行符 &q…...
Flutter 中的 PageStorage 小部件:全面指南
Flutter 中的 PageStorage 小部件:全面指南 在Flutter中,PageStorage小部件提供了一种方法来保存和恢复页面间的信息,这对于具有多个页面且需要在这些页面之间共享状态的应用程序非常有用。本文将详细介绍PageStorage的用途、如何使用它以及…...
头歌实践教学平台:CG1-v2.0-直线绘制
第1关:直线光栅化-DDA画线算法 一.任务描述 1.本关任务 (1)根据直线DDA算法补全line函数,其中直线斜率0<k<1; (2)当直线方程恰好经过P(x,y)和T(x,y1)的中点M时,统一选取直线上方的T点为显示的像素点。 2.输入 (1)直线两…...
Nacos+GateWay 搭建微服务架构
文章目录 1.当前项目架构分析1.请求多个模块的方式1.请求renren-fast模块开发环境生产环境 2.请求sunliving-commodity模块1.使用环境变量资源路径的方式2.开发环境 dev.env.js3.生产环境 prod.env.js 3.文件上传请求 sunliving-service模块1.请求后端接口(开发环境…...
【2024华为HCIP831 | 高级网络工程师之路】刷题日记(18)
个人名片:🪪 🐼作者简介:一名大三在校生,喜欢AI编程🎋 🐻❄️个人主页🥇:落798. 🐼个人WeChat:hmmwx53 🕊️系列专栏:&a…...
在抖音做电商,没有货源,不懂直播怎么办?分享一种解决方案!
大家好,我是电商糖果 糖果做电商的时间也挺久了,天猫,京东,闲鱼都搞过。 从学校进入社会工作,创业,一直都是围绕电商打转。 做的时间久了,好像只会做这一件事儿了。 2020年开始专攻抖音小店&…...
基于单片机的智能安防系统设计(32+4G+WIFI版)-设计说明书
设计摘要: 本设计基于STM32单片机,旨在实现一个智能安防系统,主要包括烟雾和温度传感器、人体红外传感器、显示屏、按键、4G模块和WiFi模块等组件。通过这些组件的协作,实现了火灾检测、入侵监测、状态显示、用户交互和远程通信等…...
云服务器配置mysql允许被远程连接从而使用图形化界面
介绍 在云服务器上搭建和配置数据库是进行网站和应用开发的关键步骤之一。本文将介绍如何在云服务器上设置 MySQL 8 和 MySQL 5,以允许远程连接,从而让你的数据库能够被远程用户访问。这样你的本机就可以访问linux服务器上的mysql能,就可以使…...
【软件测试】需求概念|软件的⽣命周期|开发模型|测试模型
目录 推荐 一、什么是需求 1.1 ⽤⼾需求 1.2 软件需求 二、开发模型 2.1 什么是“模型” 2.2 软件的⽣命周期 2.3 常⻅开发模型 2.3.1 瀑布模型 2.3.2 螺旋模型 2.3.3 增量模型、迭代模型 2.3.4 敏捷模型 2.4 测试模型 2.4.1 V模型 2.4.2 W模型(双V模型࿰…...
SQL中的LAG函数与LEAD函数用法
LAG:函数用于获取结果集中当前行之前的某一行的值 LAG (scalar_expression [,offset] [,default]) OVER ([partition_by_clause ] order_by_clause ) -----汉字解释 LAG (字段 [,偏移量默认为1] [,如果没有值时候默认值]) OVER ( [ partition_by 字段 ] order_by 字…...
数据结构------二叉树经典习题1
博主主页: 码农派大星. 关注博主带你了解更多数据结构知识 1判断相同的树 OJ链接 这道题相对简单,运用我们常规的递归写法就能轻松写出 所以我们解题思路应该这样想: 1.如果p为空,q为空,那么就是两颗空树肯定相等 2.如果一个树为空另一棵树不为空那么…...
汇聚荣:拼多多长期没有流量如何提高?
在电商的海洋中,拼多多以其独特的团购模式吸引了众多消费者的目光。然而,随着市场竞争的加剧和消费者需求的多样化,一些商家发现自家店铺的流量持续低迷,销售业绩难以突破。面对这样的挑战,如何有效提升拼多多店铺的客…...
Chrome的常用操作总结
Chrome的常用操作总结 最近的自己真的好忙啊,好久真好久没有写博客了,今天我就趁着周末的这段时间总结一下最近自己的用的Chrome浏览器常用的命令 不得不说: 就是特么的丝滑!吊打一切浏览器(不接受反驳哈哈哈)因为反驳我也不听嘻嘻 用好快捷键,就是事半功倍!!!重要的事儿说一遍…...
dvwa靶场 JavaScript Attacks(js攻击)全难度教程(附代码分析)
JS简介 一种解释型语言(代码不需要编译),一般镶嵌在html或者php中实现。 JavaScript Attacks(Security Level: low) 代码分析 <?php $page[ body ] . <<<EOF <script>/* MD5 code from here h…...
Flutter 中的 checkboxListTile 小部件:全面指南
Flutter 中的 checkboxListTile 小部件:全面指南 在Flutter的Material组件库中,CheckboxListTile是一个特殊的ListTile,它内嵌了一个复选框(Checkbox)。这使得它非常适合用来创建一个带有标题和可选复选框的列表项&am…...
前馈神经网络FNN、多层感知机MLP和反向传播推导
目录 一、前馈神经网络FNN 激活函数的使用 二、多层感知机MLP MLP的典型结构 多层感知机MLP的特点 和前馈神经网络FNN的区别 三、传播推导 1、前向传播(Forward propagation) (1)输入层到隐藏层 (2)隐藏层到输出层 2、…...
QML笔记八
QML与C交互 QML中调用C功能、使用QML或者Quick中的C接口、使用C实现自定义的QML对象 注: 只有QObject的派生类才能与QML交互 QML引擎集成Qt元对象系统,QObject的派生子类的属性、方法、信号都可以在QML中访问 C类可以被注册为一个QML实例 C类可以被注册为…...
运维别卷系列 - 云原生监控平台 之 00.prometheus 监控汇总
以下是 运维别卷系列 - 云原生监控平台 相关的详细文章链接,相应的内容,也只是用来做入门使用的 运维别卷系列 - 云原生监控平台 之 01.prometheus 入门和部署运维别卷系列 - 云原生监控平台 之 02.prometheus exporter 实践运维别卷系列 - 云原生监控平…...
信息系统安全与对抗-网络侦查技术与网络扫描技术(期末复习简答题)
1、网络拓扑结构在网络攻击中的作用 查明目标网络的拓扑结构,有利于找到目标网络的关键节点,从而提高攻击效率,达到最大攻击效果。 2、网络侦查在网络攻击中的作用 识别潜在目标系统,确认目标系统适合哪种类型的攻击。 3、百度…...
对比直接使用官方API通过聚合平台管理网站AI调用的体验
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 对比直接使用官方API与通过聚合平台管理网站AI调用的体验 作为一名网站开发者,在项目中集成大模型能力已成为常态。早期…...
【免费下载】 STM32Cube_FW_F4_V1.16.0 固件库
STM32Cube_FW_F4_V1.16.0 固件库 【下载地址】STM32Cube_FW_F4_V1.16.0固件库 本仓库提供了STM32CubeFW_F4_V1.16.0固件包的直接下载资源。STM32Cube是一个完整的软件平台,旨在支持STMicroelectronics(意法半导体)的STM32系列微控制器。这个特…...
【免费下载】 Gmsh 4.11.1 资源包
Gmsh 4.11.1 资源包 【下载地址】Gmsh4.11.1资源包 Gmsh 4.11.1 资源包本仓库提供了一个包含 Gmsh 4.11.1 版本及相关资源的下载包 项目地址: https://gitcode.com/open-source-toolkit/804a2 本仓库提供了一个包含 Gmsh 4.11.1 版本及相关资源的下载包。Gmsh 是一款开源…...
OFDM仿真(Matlab)项目推荐:深入理解与掌握正交频分复用技术
OFDM仿真(Matlab)项目推荐:深入理解与掌握正交频分复用技术 【下载地址】OFDM仿真matlab完整可运行 本资源提供了一个完整的OFDM(正交频分复用)仿真代码,基于Matlab平台开发。该仿真代码包含了OFDM系统中的多个关键模块࿰…...
别再手动改‘等’和‘et al’了!Endnote X9搭配Word搞定GB/T7714格式中英文混排(保姆级教程)
科研写作效率革命:Endnote X9与Word协同实现中英文文献自动排版 看着期刊发回的格式修改意见,实验室的王博士又一次对着电脑屏幕叹了口气。参考文献列表里中英文混排的"等"和"et al"就像散落的拼图碎片,手动修改不仅耗时…...
浏览器指纹JS逆向全解析:Canvas、WebGL与Audio指纹绕过
在当前的反爬虫与风控体系中,浏览器指纹技术已成为识别自动化工具的核心手段。传统的UserAgent、IP地址等信息早已不足为凭,而基于Canvas、WebGL、AudioContext等API生成的“渲染层指纹”,因其高度依赖硬件和系统环境,具备极强的唯…...
自动同步总失败?NotebookLM本地缓存+云端快照双轨备份,手把手配置到上线仅需7分钟
更多请点击: https://intelliparadigm.com 第一章:NotebookLM数据备份方案 NotebookLM 是 Google 推出的基于用户上传文档进行 AI 助理问答的工具,但其本身不提供原生数据导出或持久化存储功能。为防止项目上下文丢失、模型重置或账户异常导…...
前端工程化:Vite与Rollup构建优化
前端工程化:Vite与Rollup构建优化 大家好,我是欧阳瑞(Rich Own)。今天想和大家聊聊前端工程化这个重要话题。作为一个全栈开发者,构建工具是日常开发中不可或缺的一部分。今天就来分享一下Vite和Rollup的构建优化技巧…...
GitHub本周热门项目(2026-05-18)
GitHub 本周热门项目推荐 更新时间:2026-05-18 数据来源:GitHub Trending 🔥 TOP 10 热门项目 1. mattpocock/skills 一句话描述:面向真实工程师的技能框架,提供Claude Code等AI编码工具的专业技能扩展。 项目信息详…...
IMX8QX MEK开发板烧录实战:手把手教你从官方BSP包到定制uuu脚本的全流程
IMX8QX MEK开发板烧录实战:从BSP解析到定制化uuu脚本全指南 拿到一块崭新的IMX8QX MEK开发板时,官方提供的BSP包往往像一座未经探索的金矿——资源丰富但路径复杂。本文将带你深入这座金矿,从文件定位到脚本定制,完成一次完整的烧…...
