Getting Started

  • Corey Schafer, Object-Oriented Programming 6 parts
  • Setting up a Python Development Environment
    • Requirements: syntax highlighting, beautification, linter, IntelliSense: list members, parameter info, quick info, autocompletion,


  • Why? Logically group our data and functions that we can easily reuse or build upon
  • Terminology
    • Attributes and methods - functions that is associated with class
    • A class is a blueprint for creating instances
class Employee:
# instances of a Employee classes
emp_1 = Employee()
emp_2 = Employee()
# unique data
#manually variable setting - prone to human error
emp_1.first = 'Corey'
emp_1.last = 'Scafer' = '[email protected]' = '50000'
emp_2.first = 'Test'
emp_2.last = 'User' = '[email protected]' = '60000'
class Employee:
def __init__(self,first,last,pay):
#set instance variable
self.first = first
self.last = last =pay = first +'.' + last + ''
# each method within a class automatically takes the insance as the first argument
# and we always call that self
def fullname(self)
return '{}{}'.format(self.first,self.last)
# better solution: runs init automatically
emp_1 = Employee('Corey','Scafer',50000)
emp_2 = Employee('Test','User',60000)
# running actions
# better
print(emp_1.fullname()) # notice the parenthesis as it is a method
#classes are kinda like function
# remember to put self in methods in class
emp_1.fullname() is same as Employee.fullname(emp_1))