Authors:  Steven F. Lott and Dusty Phillips
Publisher:  Packt
Publication Date:  July 2, 2021
Publication Link
Prerequisites: Beginning Python

Disclaimer: The publisher sent me a copy of this book for review. I promise that everything said here is my own opinion regardless. All reviews at the Cross Trained Mind are open and honest.

About This Book

There are many programming paradigms, but the paradigm that is the most used is still object-oriented. In this book, you learn all about object-oriented programming (OOP) using Python. The book covers the basics of what an object is, moves onto Python-specific features used for OOP, examines several design patterns, and finishes with issues regarding testing and concurrency.

Who Is This For?

This is a good book for anyone new to OOP so long as they have some Python programming knowledge. This book has great coverage of the most important OOP concepts and ensures that the reader has enough knowledge to put them into practice.


The book is organized into four sections: core concepts, Python’s built-in OOP features, common design patterns, and chapters on testing and concurrency. Each chapter covers its topic and then has sections for recall, exercises, and a summary. There is a common case study throughout the book on the AI/ML concept of k-NN.

Did This Book Succeed?

This is a great book to learn the basics of OOP, refresh yourself on OOP, or learn how to program Python using OOP. It is well organized and easy to read. Someone new to OOP can easily come up to speed with practical examples of the paradigm.

Rating and Final Thoughts

Overall, I give this book a 5 out of 5.

If you are a Python programmer and want to learn OOP or improve your understanding, this is an excellent book. It’s not for the expert Python programmer or someone who only programs in a different OOP-focused language like Java or C++. I would recommend it very much for college students taking a software engineering course.

Similar Posts

Leave a Reply

Your email address will not be published. Required fields are marked *