cit 590 intro to programming object oriented programming
TRANSCRIPT
CIT 590Intro to Programming
Object oriented programming
Agenda• Finish up functional programming• More on classes• More discussion of style
Sieve example• Functional programming lends itself to recursion really
easily• Erasthothenes algorithm for getting rid of composite
numbers in a list of increasing numbers beginning with the number 2
• An ancient algorithm for finding prime numbers• From any list of increasing numbers remove the multiples
of any number in the list • Easy for list of size 1• Can I do this recursively???
The 3 argument version of the reduce function
• We have already seem reduce(function, list)• There is a 3 argument variant which is
• Reduce(function, list, identity element/first element for the process
• Sorting examples • Define insertion of an element into a sorted list • Now use a reduce operation
Quicksort• List comprehension = badass • Quicksort.py - how to do something like quickSort in very
few lines of code
More examples of classes• Stacks• Last in first out datastructure• Python does not have stacks but you can use a list to
simulate stacks• See stacks.py in the repository
Object oriented design• Think of your problem as a bunch of objects interacting
with each other• The way that an object interacts with another object is via
the methods• Library example
• A library is an object• Within the library object I need to have books … make that another
object• These books get issued by patrons … make a patron object• The library is the one that knows about all the patrons and all the
books.• An instance of a book does not need to care about patrons.
Inheritance revisited• How to call a method of your parent class?• What if the parent class does not want to define a method
completely? • We will explore this concept more fully when we do abstract
classes in Java
• animals.py has examples of this
More examples of refactoring
We’ll refactor refactoringExample.py
Main goal = showing you how to declutter the main function