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
balancestarts at 0 until a deposit is made
- the
- Bank accounts are created with a default interest rate of 2%
- Bank accounts have a
depositmethod- the
depositmethod returns the balance of the account after adding the deposited amount.
- the
- Bank accounts have a
withdrawmethod- the
withdrawmethod returns the balance after the money was successfully withdrawn.
- the
- Bank accounts return
Falseif someone tries to deposit or withdraw a negative amount. - Bank accounts have a
accumulate_interestmethod that sets the balance equal to the balance plus the balance times the interest rateaccumulate_interestreturns 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_interestis 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_penaltyproperty 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
Falseand 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
Falseinstead.
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 legal@ga.co.