Inheritance in Python
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.
Exercise: Write Bank Account Classes
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
- Bank accounts have a
deposit
method - Bank accounts have a
withdraw
method - the
deposit
method returns the balance of the account after adding the deposited amount. - the
withdraw
method returns the amount of money that was successfully withdrawn. - Bank accounts return
False
if someone tries to deposit or withdraw a negative amount. - Bank accounts are created with a default interest rate of 2%
- Bank accounts have a
accumulate_interest
method that sets the balance equal to the balance plus the balance times the interest rate accumulate_interest
returns the balance of the account after calculating the accumulated interest
- Bank accounts keep track of their current
- 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.
- 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.
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()
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()
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:
Basic account has $600
Basic account has $583
Basic account has $594.66
Child's account has $34
Child's account has $17
Child's account has $27
Overdraft account has $12
Overdraft account has $-28
Overdraft account has $-28
Licensing
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].