> ======================================= > class BankAccount(object): > def __init__(self, initial_balance=0): > self.balance = initial_balance > def deposit(self, amount): > self.balance += amount > def withdraw(self, amount): > self.balance -= amount > def overdrawn(self): > return self.balance < 0 > my_account = BankAccount(15) > my_account.withdraw(5) > print my_account.balance > ========================================= > > This prints the expected "10". > > My question is, of what use can "overdrawn" be put? If I change the > withdrawal amount to 25, it prints the expected "-10", whether the class > contains the "overdrawn" function or not. > > Thanks, > > Dick Moores
A very good question. Now I have one for you. What does your bank do when you try to withdraw money? First, it checks to see if you have the money in your account. If you do, it subtracts that out of your balance. Whoever wrote that code failed to do the check within the withdraw function. ======================================= class BankAccount(object): def __init__(self, initial_balance=0): self.balance = initial_balance def deposit(self, amount): self.balance += amount def withdraw(self, amount): if self.overdrawn(): raise "Insufficient Funds Error" self.balance -= amount def overdrawn(self): return self.balance < 0 my_account = BankAccount(15) my_account.withdraw(5) print my_account.balance ========================================= JS _______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor