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

Python面向对象编程与模块化设计练习

需求:
编写一个BankAccount类,模拟银行账户功能:
属性:账户名、余额
方法:存款、取款、查询余额
使用模块将类和测试代码分离。

模块文件:bank_account.py
该模块包含 BankAccount 类。

class BankAccount:"""模拟银行账户功能的类"""def __init__(self, account_name, balance=0):"""初始化账户名和余额:param account_name: 账户名:param balance: 初始余额,默认为0"""self.account_name = account_nameself.balance = balancedef deposit(self, amount):"""存款操作:param amount: 存款金额"""if amount > 0:self.balance += amountprint(f"成功存入 {amount} 元,当前余额为:{self.balance} 元。")else:print("存款金额必须大于 0!")def withdraw(self, amount):"""取款操作:param amount: 取款金额"""if amount > 0:if amount <= self.balance:self.balance -= amountprint(f"成功取出 {amount} 元,当前余额为:{self.balance} 元。")else:print("余额不足,取款失败!")else:print("取款金额必须大于 0!")def check_balance(self):"""查询余额:return: 当前余额"""print(f"账户 {self.account_name} 的当前余额为:{self.balance} 元。")return self.balance

测试代码文件:test_bank_account.py
该文件包含测试代码,导入 bank_account 模块并对类进行操作。

from bank_account import BankAccountdef main():# 创建账户account = BankAccount("Lily", 1000)# 查询余额account.check_balance()# 存款操作account.deposit(500)# 取款操作account.withdraw(300)# 尝试取款超过余额account.withdraw(1500)# 查询余额account.check_balance()if __name__ == "__main__":main()

代码分析:
类与模块分离:
BankAccount 类定义在 bank_account.py 模块中,便于复用和维护。
测试代码在 test_bank_account.py 中,通过导入模块进行测试。

功能完整:
提供账户初始化、存款、取款、查询余额等功能。
包含输入校验(如金额不能为负,取款金额不得超过余额)。

模块化结构:
遵循模块化设计原则,方便代码扩展和多文件协作。

运行效果:

账户 Lily 的当前余额为:1000 元。
成功存入 500 元,当前余额为:1500 元。
成功取出 300 元,当前余额为:1200 元。
余额不足,取款失败!
账户 Lily 的当前余额为:1200 元。

相关文章:

Python面向对象编程与模块化设计练习

需求&#xff1a; 编写一个BankAccount类&#xff0c;模拟银行账户功能&#xff1a; 属性&#xff1a;账户名、余额 方法&#xff1a;存款、取款、查询余额 使用模块将类和测试代码分离。 模块文件&#xff1a;bank_account.py 该模块包含 BankAccount 类。 class BankAccoun…...

Linux系统硬件老化测试脚本:自动化负载与监控

简介&#xff1a; 这篇文章介绍了一款用于Linux系统的自动化硬件老化测试脚本。该脚本能够通过对CPU、内存、硬盘和GPU进行高强度负载测试&#xff0c;持续运行设定的时长&#xff08;如1小时&#xff09;&#xff0c;以模拟长时间高负荷运行的环境&#xff0c;从而验证硬件的稳…...

搭建一个基于Web的文档管理系统,用于存储、共享和协作编辑文档

搭建一个基于Web的文档管理系统&#xff0c;用于存储、共享和协作编辑文档 本项目采用以下架构&#xff1a; NFS服务器: 负责存储文档资料。Web服务器: 负责提供文档访问和编辑功能。SELinux: 负责权限控制&#xff0c;确保文档安全。Git服务器: 负责存储文档版本历史&#x…...

排序学习整理(1)

1.排序的概念及运用 1.1概念 排序&#xff1a;所谓排序&#xff0c;就是使⼀串记录&#xff0c;按照其中的某个或某些关键字的大小&#xff0c;递增或递减的排列起来的操作&#xff0c;以便更容易查找、组织或分析数据。 1.2运用 购物筛选排序 院校排名 1.3常见排序算法 2.实…...

《深入探究 Java 中的 boolean 类型》

在 Java 编程语言的世界里&#xff0c;boolean 类型虽然看似简单&#xff0c;却在程序的逻辑控制和决策中起着至关重要的作用。本文将带你深入了解 Java 中的 boolean 类型&#xff0c;从其基本概念、用法到实际应用场景&#xff0c;以及一些常见的注意事项。 一、boolean 类型…...

智享 AI 自动无人直播系统:打破地域与时间枷锁中小微企业的营销破局利器

中小微企业&#xff0c;在商业浪潮中恰似逐浪扁舟&#xff0c;常面临营销成本高、推广渠道窄、专业人才缺等 “暗礁”&#xff0c;而智享 AI 自动无人直播系统恰如精准导航的灯塔&#xff0c;助其破浪前行、突出重围。 成本维度&#xff0c;传统直播人力成本让中小微企业望而却…...

接口测试工具:reqable

背景 在众多接口测试工具中挑选出一个比较好用的接口测试工具。使用过很多工具&#xff0c;如Postman、Apifox、ApiPost等&#xff0c;基本上是同类产品&#xff0c;一般主要使用到的功能就是API接口和cURL&#xff0c;其他的功能目前还暂未使用到。 对比 性能方面&#xff…...

同时多平台git配置:GitHub和Gitee生成不同的SSH Key

文章目录 GitHub和Gitee生成不同的SSH Key步骤1&#xff1a;生成SSH Key步骤2&#xff1a;配置SSH配置文件步骤3&#xff1a;查看SSH公钥步骤4&#xff1a;将SSH公钥添加到GitHub和Gitee步骤5&#xff1a;测试SSH连接步骤6&#xff1a;添加remote远程库 GitHub和Gitee生成不同的…...

刷题计划day24 回溯(三)【复原 IP 地址】【子集】【子集 II】

⚡刷题计划day24 回溯&#xff08;三&#xff09;继续&#xff0c;回溯一共会有五个专题&#xff0c;敬请期待关注&#xff0c;可以点个免费的赞哦~ 往期可看专栏&#xff0c;关注不迷路&#xff0c; 您的支持是我的最大动力&#x1f339;~ 目录 题目一&#xff1a;复原 IP…...

从“找三角形”讲“等腰三角形”

【题目】 周长为11&#xff0c;且各边长均为整数的三角形有哪些&#xff1f; 【答案】 四种&#xff0c;边长分别为&#xff1a; 2 4 5 3 3 5 1 5 5 3 4 4 【解析】 讲解等腰三角形的概念时&#xff0c;传统方法一般向学生展示一个等腰三角形的实物模型&#xff0c;这…...

Java中的泛型方法和泛型类

在Java编程语言中&#xff0c;泛型&#xff08;Generics&#xff09;是一个强大的特性&#xff0c;它使得类、接口和方法能够灵活地操作各种数据类型&#xff0c;同时保持类型安全。泛型主要通过类型参数&#xff08;Type Parameters&#xff09;来实现&#xff0c;这些类型参数…...

springboot学习-spring-boot-data-jdbc分页/排序/多表查询的例子

上次使用的是JdbcTemplate实现的&#xff0c;是比较老的方式&#xff0c;重新用spring boot data jdbc和jdbc client 实现一遍。也比较一下这几种的编码差异。数据库方面JAVA给了太多选择&#xff0c;反而不好选了。 上次就试图直接用&#xff1a; public interface UserRepo…...

通信与网络基础

1.网络通信基本概念 通信&#xff1a;人、物通过某种介质和行为进行信息传递与交流 网络通信&#xff1a;终端设备之间通过计算机网络进行通信 两个终端通过网线传递文件 多个终端通过路由器传递文件 终端通过Internet下载文件 2.信息传递过程 图1-1 假定A计算机访问B的web…...

【3.存储系统】综合大题

【考点】存储系统综合大题 【2011年408真题】某计算机存储器按字节编址&#xff0c;虚拟(逻辑)地址空间大小为16 MB&#xff0c;主存(物理)地址空间大小为1 MB&#xff0c;页面大小为4 KB&#xff1b;Cache采用直接映射方式&#xff0c;共8行&#xff1b;主存与Cache之间交换的…...

【Linux】【字符设备驱动】深入解析

Linux字符设备驱动程序用于控制不支持随机访问的硬件设备&#xff0c;如串行端口、打印机、调制解调器等。这类设备通常以字符流的形式与用户空间程序进行交互。本节将深入探讨字符设备驱动的设计原理、实现细节及其与内核其他组件的交互。 1. 引言 字符设备驱动程序是Linux内…...

【JavaEE】多线程(2)

一、线程安全 1.1 线程安全的概念 线程是随机调度执行的&#xff0c;如果多线程环境下的程序运行的结果符合我们预期则说明线程安全&#xff0c;反之&#xff0c;如果遇到其他结果甚至引起了bug则说明线程不安全 1.2 经典例子与解释 下面举一个经典的线程不安全的例子&…...

mac下Gpt Chrome升级成GptBrowser书签和保存的密码恢复

cd /Users/自己的用户名/Library/Application\ Support/ 目录下有 GPT\ Chrome/ Google/ GptBrowser/ GPT\ Chrome 为原来的chrome浏览器的文件存储目录. GptBrowser 为升级后chrome浏览器存储目录 书签所在的文件 Bookmarks 登录账号Login 相关的文件 拷贝到GptBrow…...

使用Grafana K6来测测你的系统负载能力

背景 近期我们有个号称会有很高很高并发的系统要上线&#xff0c;为了测试一下自己开发的系统的负载能力&#xff0c;准备了点海克斯科技&#xff0c;来看看抗不抗的住。 之前笔者写过用Apache JMeter进行压力测试的文章&#xff08;传送门&#x1f449;&#xff1a;https://…...

【论文复现】基于BERT的语义分析实现

&#x1f4dd;个人主页&#x1f339;&#xff1a;Eternity._ &#x1f339;&#x1f339;期待您的关注 &#x1f339;&#x1f339; ❀ WRN: 宽度残差网络 概述语义分类文本分类情感分类 实现原理 核心逻辑pre_deal.pytrain.pytest_demo.py 实现方式&演示效果训练阶段测试阶…...

CTF-RE: STL逆向 [NewStarCTF 2023 公开赛道 STL] WP

多看看STL题就会了,很简单 int __fastcall main(int argc, const char **argv, const char **envp) {__int64 v3; // rbx__int64 v4; // raxchar v5; // bl_BYTE *v6; // rax_QWORD *v7; // rax__int64 v8; // rax__int64 v9; // raxint i; // [rsp0h] [rbp-250h]int j; // [r…...

Java高频面试题:RocketMQ有哪些使用场景?

大家好&#xff0c;我是锋哥。今天分享关于【Java高频面试题&#xff1a;RocketMQ有哪些使用场景&#xff1f;】面试题 。希望对大家有帮助&#xff1b;Java高频面试题&#xff1a;RocketMQ有哪些使用场景&#xff1f;RocketMQ 是阿里巴巴开源的一款分布式消息中间件&#xff0…...

先瑞达2025年年报:营收同比增长20.7% 双引擎格局成型迎高质量增长

3月26日晚间&#xff0c;先瑞达医疗&#xff08;6669.HK&#xff09;正式发布截至2025年12月31日的年度业绩报告。报告期内&#xff0c;公司紧扣血管介入治疗领域核心赛道&#xff0c;以技术创新为内核、以全球化布局为抓手、以降本增效为支撑&#xff0c;实现经营业绩的稳健增…...

SDPose-Wholebody模型在卷积神经网络架构上的创新优化

SDPose-Wholebody模型在卷积神经网络架构上的创新优化 人体姿态估计技术正在从简单的身体关节点检测向全身精细化识别演进&#xff0c;而SDPose-Wholebody通过创新的卷积神经网络架构设计&#xff0c;将这一技术推向了新的高度。 1. 核心架构设计突破 SDPose-Wholebody的最大创…...

AHT20传感器数据漂移?STM32硬件I2C与软件模拟的稳定性对比测试

STM32硬件I2C与软件模拟I2C在AHT20传感器应用中的稳定性深度解析 工业级环境监测系统对温湿度数据的可靠性有着严苛要求。AHT20作为一款高精度温湿度传感器&#xff0c;其数据采集的稳定性直接关系到整个系统的可信度。本文将深入探讨STM32平台下硬件I2C与GPIO模拟I2C两种实现方…...

脉冲神经网络也能玩转频域?FSTA-SNN时空注意力模块的5个实战应用场景

脉冲神经网络频域建模实战&#xff1a;FSTA-SNN模块的五大创新应用 脉冲神经网络&#xff08;SNN&#xff09;作为第三代神经网络&#xff0c;近年来在计算机视觉领域展现出独特优势。传统SNN模型在时空特征提取上存在明显短板&#xff0c;而FSTA-SNN模块的提出为这一困境提供了…...

这次终于选对了!高效论文写作全流程一键生成论文工具推荐(2026 最新)

论文写作全流程可拆解为文献调研→选题/开题→大纲/初稿→文献综述→降重/去AI味→润色/格式→查重/投稿七大环节&#xff0c;以下工具按环节精准匹配&#xff0c;兼顾中文适配、降重能力、去AI痕迹、学术合规四大核心需求&#xff0c;覆盖免费/付费、通用/垂直场景。2026年&am…...

中国举办,IEEE会议,录用率39.5%!CCF推荐学术会议(C)截稿提醒

►►►Globecom 2026IEEE Global Communications Conference (GLOBECOM), a flagship IEEE Communications Society event, gathers top experts to drive innovation and advance nearly every aspect of communications technology. Each year, thousands of the most ground…...

狗狗6种行为识别检测数据集(近3000张图片已标注)| YOLO训练数据集 AI视觉检测

狗狗6种行为识别检测数据集&#xff08;近3000张图片已标注&#xff09;| YOLO训练数据集 AI视觉检测 摘要 在AI视觉落地宠物经济的浪潮中&#xff0c;狗狗行为识别一直是一个非常有商业价值和趣味性的方向。为了帮助大家更高效地训练模型&#xff0c;我整理并开源了一套高质…...

避坑指南:SpringBoot调用DeepSeek API时你可能会遇到的5个问题及解决方案

SpringBoot集成DeepSeek API的5个典型避坑指南 在将DeepSeek的对话补全能力整合到SpringBoot应用时&#xff0c;不少开发者会遇到一些看似简单却容易踩坑的问题。这些问题往往不会在官方文档中被特别强调&#xff0c;但却能让你在调试过程中耗费数小时。本文将聚焦五个最具代表…...

**基于Python与Neo4j的知识图谱构建实践:从数据到语义网络的跃迁**在人工智能与大数据深度融合

基于Python与Neo4j的知识图谱构建实践&#xff1a;从数据到语义网络的跃迁 在人工智能与大数据深度融合的时代&#xff0c;知识图谱已成为智能问答、推荐系统、语义搜索等场景的核心基础设施。本文将围绕 Python Neo4j 构建一个小型但功能完整的知识图谱系统&#xff0c;带你完…...