First, complete the following class definition:
class BankAccount: def __init__(self, initial_balance): """Creates an account with the given balance.""" … def deposit(self, amount): """Deposits the amount into the account.""" … def withdraw(self, amount): """ Withdraws the amount from the account. Each withdrawal resulting in a negative balance also deducts a penalty fee of 5 dollars from the balance. """ … def get_balance(self): """Returns the current balance in the account.""" … def get_fees(self): """Returns the total fees ever deducted from the account.""" …
The deposit
and withdraw
methods
each change the account balance. The withdraw
method
also deducts a fee of 5 dollars from the balance if the withdrawal (before any fees) results in a negative balance. Since we also have the method get_fees
,
you will need to have a variable to keep track of the fees paid.
Here's one possible test of the class. It should print the values 10 and 5, respectively, since the withdrawal incurs a fee of 5 dollars.
my_account = BankAccount(10) my_account.withdraw(15) my_account.deposit(20) print my_account.get_balance(), my_account.get_fees()
这里用了一个列表来储存数据。其他没什么特别的。
class BankAccount: def __init__(self, initial_balance): self.balance = initial_balance self.fee = [0] """Creates an account with the given balance.""" def deposit(self, amount): """Deposits the amount into the account.""" self.balance = self.balance + amount return self.balance def withdraw(self, amount): """ Withdraws the amount from the account. Each withdrawal resulting in a negative balance also deducts a penalty fee of 5 dollars from the balance. """ self.balance = self.balance - amount if self.balance < 0: self.balance = self.balance - 5 self.fee[0] += 1 def get_balance(self): """Returns the current balance in the account.""" return self.balance def get_fees(self): """Returns the total fees ever deducted from the account.""" return self.fee[0]*5