Today we talk about Python classes. So far we've written programs that are just made up of functions. Today we introduce the Python class, a mechanism to group together related functions and the variables that these functions share in some way. Classes are a common programming paradigm in many languages, but Python has its own flavor of implementation.
You've already been using instances of classes without realizing it. The List is a class, as well as a Dictionary. When you create a List and append to it like this:
nums = List()
nums.append(5)
nums.append(9)
...you've created an instance of a class. Your nums variable is what we call an object, one instance of the class List. The append() function is actually part of the List class which is why we use the .append() notation with your nums variable, instead of just calling append() by itself.
Today's topic is the last major topic in this course, but a very important topic to the rest of the semester.
Read Chapter 14 up to and including "Classes as Types".
class BankAccount:
def __init__(self, owner, starting):
self.owner = owner
self.amt = starting
def deposit(self, dollars):
self.amt += dollars
def withdraw(self, dollars):
self.amt -= dollars
def balance(self):
return self.amt
# Create the account.
name = input("What's your name? ")
acct = BankAccount(name, 0)
# User input:
# 'deposit 1000'
# 'withdraw 500'
# 'balance'
# 'exit'
command = input("Action: ")
while not 'exit' in command:
if command.startswith('deposit'):
action,amt = command.split()
acct.deposit(int(amt))
elif command.startswith('withdraw'):
action,amt = command.split()
acct.withdraw(int(amt))
elif command == 'balance':
print('Your balance is', acct.balance())
command = input("Action: ")