设计一个管理银行账户的类,要求有两个类属性:开户数量以及总存款额:两个 实例属性:户名与个人存款领:两个普通的实倒方法:取钱与存钱:四个类方法:总存款额增 减以及开户量增减,还妥失現特珠方法 。最后,生成西个失例井作简单的测试!
时间: 2024-06-08 12:07:38 浏览: 35
以下是实现要求的银行账户管理类的代码:
```python
class BankAccount:
num_of_accounts = 0 # 类属性,开户数量
total_deposits = 0 # 类属性,总存款额
def __init__(self, name, deposit):
self.name = name # 实例属性,户名
self.deposit = deposit # 实例属性,个人存款额
BankAccount.num_of_accounts += 1 # 开户数量增加
BankAccount.total_deposits += deposit # 总存款额增加
def withdraw(self, amount):
if amount > self.deposit:
print("余额不足,取款失败")
else:
self.deposit -= amount
BankAccount.total_deposits -= amount
print("已取出{}元,当前余额为{}元".format(amount, self.deposit))
def deposit_money(self, amount):
self.deposit += amount
BankAccount.total_deposits += amount
print("已存入{}元,当前余额为{}元".format(amount, self.deposit))
@classmethod
def increase_num_of_accounts(cls):
cls.num_of_accounts += 1
print("当前开户数量为{}".format(cls.num_of_accounts))
@classmethod
def decrease_num_of_accounts(cls):
cls.num_of_accounts -= 1
print("当前开户数量为{}".format(cls.num_of_accounts))
@classmethod
def increase_total_deposits(cls, amount):
cls.total_deposits += amount
print("当前总存款额为{}元".format(cls.total_deposits))
@classmethod
def decrease_total_deposits(cls, amount):
cls.total_deposits -= amount
print("当前总存款额为{}元".format(cls.total_deposits))
def __str__(self):
return "户名:{},个人存款额:{}元".format(self.name, self.deposit)
```
接下来是一个简单的测试:
```python
# 开户
account1 = BankAccount("张三", 1000)
account2 = BankAccount("李四", 2000)
print(account1)
print(account2)
# 存款
account1.deposit_money(500)
account2.deposit_money(1000)
# 取款
account1.withdraw(800)
account2.withdraw(3000)
# 类方法调用
BankAccount.increase_num_of_accounts()
BankAccount.decrease_total_deposits(1000)
```
运行结果:
```
户名:张三,个人存款额:1000元
户名:李四,个人存款额:2000元
已存入500元,当前余额为1500元
已存入1000元,当前余额为3000元
已取出800元,当前余额为700元
余额不足,取款失败
当前开户数量为2
当前总存款额为4000元
```