Introduction to Classes and Objects

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.

Reading

Read Chapter 14 up to and including "Classes as Types".

Today in Class

  1. Introduction to 'classes' and 'objects'
  2. How to write functions in a class
  3. How to declare variables in a class
  4. How to call class functions and access object variables

You should be able to understand this program.

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: ")