Python实现BankAccount类:含构造、属性封装与静态成员,附主函数测试
以下是使用 Python 实现的 `BankAccount` 类: ```python import random class BankAccount: totalAccounts = 0 # 静态字段,统计账户总数 def __init__(self, accountNumber=None, ownerName=None, balance=0): if accountNumber is None: self.accountNumber = f"ACC-{random.randint(1, 999):03}" # 生成随机账号 else: self.accountNumber = accountNumber if ownerName is None: self.ownerName = "Anonymous" else: self.ownerName = ownerName self._balance = balance # 私有属性表示余额 BankAccount.totalAccounts += 1 # 增加账户总数 @property # Balance 属性为只读 def balance(self): return self._balance def deposit(self, amount): """ 存款方法 :param amount: 存款金额 """ self._balance += amount def withdraw(self, amount): """ 取款方法 :param amount: 取款金额 :return: 取款成功返回 True,余额不足返回 False """ if self._balance >= amount: self._balance -= amount return True else: return False @staticmethod def getTotalAccounts(): """ 静态方法,返回账户总数 :return: 账户总数 """ return BankAccount.totalAccounts # 主函数测试 if __name__ == "__main__": account1 = BankAccount("ACC-001", "Alice", 1000) account2 = BankAccount() print(f"账户 1 的余额: {account1.balance}") account1.deposit(500) print(f"存款 500 后账户 1 的余额: {account1.balance}") if account1.withdraw(800): print("取款 800 成功") else: print("余额不足,取款失败") print(f"账户总数: {BankAccount.getTotalAccounts()}") ``` 额外需要注意的逻辑点: 1. 对于随机账号的生成,可以考虑增加更多的随机性或规则。 2. 取款和存款的操作,要确保对异常情况的处理完善,比如输入负数金额等。 3. 考虑添加日志记录功能,以便跟踪账户的操作历史。 ######[AI写代码神器 | 564点数解答 | 2025-04-13 15:48:56]
- 深度解析:`bankaccount *account` 与 `bankaccount account` 在代码中的差异( | 174点数解答 | 2024-08-08 15:43:13)314
- Python 实现球类:精准计算半径、表面积与体积,附输入验证与异常处理!(阿里通义 | 261点数解答 | 2024-11-28 21:19:39)369
- 详解银行账户管理代码:开户、存款与取款功能实现(讯飞星火 | 195点数解答 | 2024-08-08 14:53:52)312
- 超详细!逐行解读银行账户管理代码的含义、作用与用法(讯飞星火 | 152点数解答 | 2024-08-08 14:58:48)330
- C语言:银行账户结构体与操作函数的代码解析及使用示例(讯飞星火 | 298点数解答 | 2024-08-08 15:01:11)306
- 代码揭秘:bankaccount *account 的含义与功能解析( | 124点数解答 | 2024-08-08 15:12:48)346
- C 语言揭秘:`bankaccount *account` 与 `account->balance += amount` 的原理及作用 ( | 161点数解答 | 2024-08-08 15:18:14)323
- 代码解析:指针与结构体在银行账户系统中的作用与好处( | 201点数解答 | 2024-08-08 15:39:09)292
- 揭秘:为何 bankaccounttest 函数用 bankaccount account 而非 bankaccount *account? (字节豆包 | 218点数解答 | 2024-08-08 15:48:26)432
- 解惑:为何deposit函数printf无&,另一函数却有?代码奥秘大揭秘! (字节豆包 | 132点数解答 | 2024-08-08 15:53:07)285
- 揭秘:为何printf中getbalance函数传参的account前要加&? (字节豆包 | 121点数解答 | 2024-08-08 15:56:21)333
- C 语言揭秘:openaccount、deposit、withdraw 函数中 account 前加 & 的原因 (字节豆包 | 142点数解答 | 2024-08-08 16:03:25)330