Skip to content

WDI-SEA/python-bank-account-inheritance

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 

Repository files navigation

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.

Part 1: Making the Parent Class

  • Create a base BankAccount class
    • Bank accounts keep track of their current balance
      • the balance starts at 0 until a deposit is made
    • 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.
    • Bank accounts have a withdraw method
      • the withdraw method returns the balance after the money was successfully withdrawn.
    • 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 rate
      • accumulate_interest returns the balance of the account after calculating the accumulated interest

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

Part 2: Making a Child Class Override Parent Class Methods

  • 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

Part 3: Making Overdraft Account With New Properties

  • 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 the overdraft_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

Licensing

All content is licensed under a CC­BY­NC­SA 4.0 license. All software code is licensed under GNU GPLv3. For commercial use or alternative licensing, please contact [email protected].

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •  

Languages