#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
"""