#Ex 7.3 from "A primer on..." # add functionality to a class from datetime import datetime class AccountP: def __init__(self, name, account_number, initial_amount): self._name = name self._no = account_number trans = {'time':datetime.now(), 'amount':initial_amount} self._transactions = [trans] def deposit(self, amount): trans = {'time':datetime.now(), 'amount':amount} self._transactions.append(trans) def withdraw(self, amount): self.deposit(-amount) def get_balance(self): bal = 0 for t in self._transactions: bal += t['amount'] return bal def dump(self): s = f'{self._name}, {self._no}, balance: {self.get_balance()}' print(s) def print_transactions(self): for t in self._transactions: print(f"Time: {t['time']} Amount: {t['amount']}") #a few transactions to check that it works a = AccountP('js',123,100) a.deposit(100) a.withdraw(50) print(a.get_balance()) a.dump() a.print_transactions() """ Terminal> python Account3.py 150 js, 123, balance: 150 Time: 2022-10-24 14:36:54.497704 Amount: 100 Time: 2022-10-24 14:36:54.497713 Amount: 100 Time: 2022-10-24 14:36:54.497715 Amount: -50 """