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_name
        self.balance = balance

    def deposit(self, amount):
        """
        存款操作
        :param amount: 存款金额
        """
        if amount > 0:
            self.balance += amount
            print(f"成功存入 {amount} 元,当前余额为:{self.balance} 元。")
        else:
            print("存款金额必须大于 0!")

    def withdraw(self, amount):
        """
        取款操作
        :param amount: 取款金额
        """
        if amount > 0:
            if amount <= self.balance:
                self.balance -= amount
                print(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 BankAccount

def 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 元。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

琅中之嶹

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值