Use your knowledge of Python Classes and Python Inheritance to model several types of bank accounts.
Create your classes in the provided bank.py
file.
Let's practice writing classes and using inheritance by modelling different types of Bank accounts.
- Create a base BankAccount class
- Bank accounts keep track of their current
balance
- the
balance
starts at 0 until a deposit is made
- the
- Bank accounts are created with a default interest rate of 2%
- Bank accounts have a
deposit
method- the
deposit
method returns the balance of the account after adding the deposited amount.
- the
- Bank accounts have a
withdraw
method- the
withdraw
method returns the balance after the money was successfully withdrawn.
- the
- Bank accounts return
False
if someone tries to deposit or withdraw a negative amount. - Bank accounts have a
accumulate_interest
method that sets the balance equal to the balance plus the balance times the interest rateaccumulate_interest
returns the balance of the account after calculating the accumulated interest
- Bank accounts keep track of their current
Sample Input:
basic_account = BankAccount()
basic_account.deposit(600)
print("Basic account has ${}".format(basic_account.balance))
basic_account.withdraw(17)
print("Basic account has ${}".format(basic_account.balance))
basic_account.accumulate_interest()
print("Basic account has ${}".format(basic_account.balance))
print()
Sample Output:
Basic account has $600
Basic account has $583
Basic account has $594.66
- Create a ChildrensAccount class
- Children's bank accounts have an interest rate of Zero.
- Every time
accumulate_interest
is executed on a Child's account the account always gets $10 added to the balance.
Sample Input:
childs_account = ChildrensAccount()
childs_account.deposit(34)
print("Child's account has ${}".format(childs_account.balance))
childs_account.withdraw(17)
print("Child's account has ${}".format(childs_account.balance))
childs_account.accumulate_interest()
print("Child's account has ${}".format(childs_account.balance))
print()
Sample Output:
Child's account has $34
Child's account has $17
Child's account has $27
- Create an OverdraftAccount class
- An overdraft account penalizes customers for trying to draw too much money out of their account.
- Overdraft accounts are created with an
overdraft_penalty
property that defaults to $40. - Customer's aren't allowed to withdraw more money than they have in their account. If a customer tries to withdraw more than they have then the withdraw method returns
False
and their balance is deducted only by the amount of theoverdraft_penalty
. - Overdraft accounts don't accumulate interest if their balance is below zero, but return
False
instead.
Sample Input:
overdraft_account = OverdraftAccount()
overdraft_account.deposit(12)
print("Overdraft account has ${}".format(overdraft_account.balance))
overdraft_account.withdraw(17)
print("Overdraft account has ${}".format(overdraft_account.balance))
overdraft_account.accumulate_interest()
print("Overdraft account has ${}".format(overdraft_account.balance))
Sample Output:
Overdraft account has $12
Overdraft account has $-28
Overdraft account has $-28
All content is licensed under a CCBYNCSA 4.0 license. All software code is licensed under GNU GPLv3. For commercial use or alternative licensing, please contact [email protected].