编写一个BankAccount类,要求: 有余额属性,该属性可读不可写. 取款方法,需要判断取款金额小于余额存款方法,要求存款金额大于0 查询方法,对余额进行查询 假设我们在银行已经开户,并且
时间: 2024-09-27 13:13:43 浏览: 25
为了编写这个 `BankAccount` 类,我们可以按照以下步骤进行:
```python
class BankAccount:
def __init__(self, initial_balance=0):
"""
初始化银行账户,设置初始余额
:param initial_balance: 初始余额,默认为0
"""
self.__balance = initial_balance # 使用双下划线表示私有属性,只供内部访问
@property
def balance(self): # 只读属性,通过getter方法获取余额
return self.__balance
def deposit(self, amount):
"""
存款方法,检查金额是否大于0并更新余额
:param amount: 存款金额
:raise ValueError: 如果金额小于0
"""
if amount > 0:
self.__balance += amount
else:
raise ValueError("存款金额必须大于0.")
def withdraw(self, amount):
"""
取款方法,检查取款金额不超过余额,并进行扣减
:param amount: 取款金额
:return: 实际取走的金额
:raise ValueError: 如果取款金额超过余额
"""
if amount <= self.__balance:
self.__balance -= amount
return amount
else:
raise ValueError("取款金额超出了当前余额.")
def query_balance(self):
"""
查询方法,直接返回账户余额
"""
return self.balance
# 示例用法
account = BankAccount(500)
print(account.query_balance()) # 输出初始余额
account.deposit(200)
print(account.withdraw(150)) # 输出实际取款额
print(account.query_balance())
```
阅读全文