Transcript Lecture11
CIT 590 Intro 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