Bank Account Demo¶
Here is an example of a class that manages a Bank. It is far from complete, but should give you an idea how all this works.
This is the banker.py
driver program
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | # banker.py
from BankManager import *
def main():
print("Bank Manager v1.0")
bank = BankManager("Silly Savings and Loan")
account_num = bank.open_account("savings", 500)
print("Created account:", account_num)
account_num = bank.open_account("checking", 1500)
print("Created account:", account_num)
account_num = bank.open_account("pirate", 200)
bank.deposit(account_num, 1250)
bank.show_assets()
main()
|
Here is the BankManager.py
file:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 | # BankManager.py
from BankAccount import *
class BankManager(object):
def __init__(self, bank_name):
self.name = bank_name
print("Creating bank:",bank_name)
self.accounts = []
def open_account(self,account_type, initial_deposit):
account_number = None
account_type = account_type.lower()
if account_type in ["checking", "savings"]:
account = BankAccount(account_type)
account.deposit(initial_deposit)
self.accounts.append(account)
account_number = account.number
return account_number
def show_assets(self):
cash = 0
print("Current status:")
for account in self.accounts:
print("\tAccount number:", account.number)
print("\t\tAccount type:", account.account_type)
print("\t\tcurrent balance:", account.balance)
cash += account.balance
print("Cash on hand:", cash)
def deposit(self, account_number, amount):
this_account = None
for account in self.accounts:
if account.number == account_number:
this_account = account
break
if this_account:
this_account.deposit(amount)
else:
print("Illegal account number - ignored")
|
And the BankAccount.py
file:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | # BankAccount.py - manage accounts
class BankAccount(object):
ACCOUNT_NUMBER = 1000
def __init__(self, account_type):
self.account_type = account_type
self.number = BankAccount.ACCOUNT_NUMBER
BankAccount.ACCOUNT_NUMBER += 1
self.balance = 0
def deposit(self, amount):
self.balance += amount
|