Case Study

Get an overview of how functional programming in Python blends object-oriented and functional approaches to create flexible applications.

We'll cover the following

While object-oriented programming is helpful for encapsulating features, it’s not the only way to create flexible, expressive, and succinct application programs. Functional programming emphasizes functional design and function composition over object-oriented design.

In Python, functional design often involves using a few object-oriented techniques. This is one of the beauties of Python: being able to choose an appropriate set of design tools to address the problem effectively.

We often depict object-oriented designs with the classes and their various associations. For functional design, we’re interested in functions to transform objects. A functional design can follow mathematical practices closely.

In this part of the case study, we’ll revisit a number of features of the classifier as functions mixed with class definitions. We’ll step away from a pure object-oriented view and adopt a hybrid view. In particular, we’ll look closely at segregating data into a training set and a testing set.

Processing overview

The initial analysis from Chapter 1, “Object-Oriented Design,” identified three distinct processes for gathering training data, testing the classifier, and actually doing classification. The context diagram looked like this:

Get hands-on with 1200+ tech skills courses.