Good news: there is! Read on to find the full review of the most complete Python Object-Oriented Programming book.

Python 3 Object-Oriented Programming: The following is a review of the book Python Object-Oriented Programming by Dusty Philips.
Python Object-Oriented Programming review: beyond basic classes
This review is for readers who already know Python functions, loops, and collections and want to understand classes, composition, inheritance, and testing. The original article discusses an older edition of Dusty Phillips’s book; check edition-specific resources before following the examples.
Using Python for machine learning? Read the free Starter Kit excerpt on test sets before your first model. No email required; the full Starter Kit costs €19.
Object-oriented programming groups state and behavior into objects. It can make responsibilities clearer, but classes do not automatically make code faster, cleaner, or easier to test. Use them when they express a useful concept or manage related state.
Python supports object-oriented and functional styles. A small transformation can remain a function; a component with state and a lifecycle may benefit from a class. Learning OOP includes learning when not to introduce an object hierarchy.
For me specifically, I use to do everything with functions and large scripts, and learning OOP, despite the initial steep learning curve, dramatically improved the way I program. My code now is more efficient, easier to understand, and easier to fix and debug.
For learning all this, the tool I used is this amazing book. Lets take a look at it!
Review
A book offers a structured sequence of explanations and exercises; a focused tutorial can help with a particular concept. Use both as needed, and check understanding by writing an example without copying the solution.
You will learn about data structures, design patterns and methodologies, and effective object-oriented techniques to take your python programming to the next level. Also, you will see how to use many new and powerful Python libraries, and advanced Python techniques that you probably wouldn’t have learned somewhere else.
First, you will learn what Object Oriented Programming is about, and apply this abstract knowledge about classes, objects, and methods to Python with some extremely clear and easy to understand examples.
You will also learn high level software design patterns that will allow you to build maintainable and optimised applications, and you’ll learn to perform unitary tests (a very important part of professional software development) using the Python unittest library.
A realistic goal is to explain a design choice, test a class through its public behavior, and refactor without changing results. Completing the book does not by itself guarantee reliable production software.
It is also important to note that while most programming books out there are either so dense that they’re impenetrable and tedious to read, or they’re ridiculously simplistic, this book shines as a good middle ground that is actually enjoyable to read.
Contents of Python 3 Object Oriented Programming
The outline below describes an older edition. Packt lists a fifth edition by Steven F. Lott and Dusty Phillips, with revised contents. Use the examples and companion repository that correspond to your edition.
Table of Contents
- Object-oriented Design: an introduction to object oriented design, principles, what inheritance is, and a great case study.
- Objects in Python: Python objects and classes, Modules and Packages, and data scopes.
- When Objects Are Alike: basic and multiple inheritance, polymorphism, and abstract base classes.
- Expecting the Unexpected: what exceptions are, when they are useful, and how to create them in Python.
- When to Use Object-oriented Programming: pretty self-explanatory chapter, about when it is most important to use OOP in Python.
- Python Data Structures: the main Python Data Structures: Dictionaries, Lists, Sets, and how to extend built-in functions to incorporate new functionalities.
- Python Object-oriented Shortcuts: Python’s most important built-in functions, how to overload, and an eye opening discovery – functions are objects too!
- Strings and Serialisation: how to works with strings, regular expressions, filesystems, and serialising objects.
- The Iterator Pattern: design patterns, iterators, list comprehensions, generators, and co-routines.
- Python Design Patterns I: decorator, observer, strategy, state, singleton and other design patterns.
- Python Design Patterns II: adapter, facade, flyweight, command and other design patterns.
- Testing Object-oriented Programs: why are unitary tests important, and an introduction to pytest and unittest.
- Concurrency: threads, multiprocessing and concurrency in Python explained.
In a few bullets, what you will learn is:
- Implement objects in Python by creating classes and defining methods
- Grasp common concurrency techniques and pitfalls in Python 3
- Extend class functionality using inheritance
- Understand when to use object-oriented features, and more importantly when not to use them
- Discover what design patterns are and why they are different in Python
- Uncover the simplicity of unit testing and why it’s so important in Python
- Explore concurrent object-oriented programming
You can find a link to the official website of the book here.
Who is this book for?
From our point of view, this book is for people that are already familiar to programming in python, that want to learn the principles of OOP in this fantastic language. If you are new to programming, we recommend you grab another book, like for example Learning Python by Mark Lutz, or Python Crash course. They are beginer, from zero to hero Python programming books that will get you to the level where you will feel comfortable with texts like this one.
People with experience in programming with Python, will find this book and insightful and amusing guide for learning OOP, and later on use it as a reference manual to check for certain design patters or syntax doubts.
In any case, if you think this book is too advanced, or if you have 0 Python programming knowledge, you can find a lot of other resources for learning in our Python book section or in our online courses section. Go take a look!
How to read this book?
Practise with a small dataset reader: begin with a function, then introduce a class only if you need persistent configuration or state. Test valid input, missing fields, and empty data. Compare the two designs and explain what the class improves.
While this strategy might take longer than just sitting on your couch and reading the book like a novel, it is definitely a better approach that will make you understand, and retain the concepts much better.
About the author
Dusty Phillips wrote the earlier editions discussed in this review. Later editions also credit Steven F. Lott. Consult the publisher’s edition page for the relevant author information and companion resources.
Summary of Python 3 Object Oriented Programming
In conclusion, if you want to learn about Python classes, and how you can become a better programming in Python by using objects, this is the book for you. With it, you will learn OOPs concepts in Python with examples, and awesome case studies, while learning additional material like regular expressions, concurrency, and a good bunch of awesome design patterns.
The book is well-written, comes with exercises, case studies, and a lot of concisely and useful information. It will give you a very solid foundation to Object Oriented programming in a simple and neatly explained manner. We hope you like it! If you want, you can buy it at the best price on Amazon here:
Python 3 Object Oriented Programming
Thank you very much for reading How to Learn Machine Learning! Find other great blogs about this awesome topic in our blogs category!
Have a good day!
Subscribe to our awesome newsletter to get the best content on your journey to learn Machine Learning, including some exclusive free goodies!


