Good news: there is! Read on to find the full review of the most complete Python Object-Oriented Programming book.
The following is a review of the book Python 3 Object-Oriented Programming: Build robust and maintainable software with object-oriented design patterns in Python 3.8, 3rd Edition by Dusty Philips.
Object-oriented programming (OOP) is a method of structuring a program by bundling related properties and behaviours into individual objects. This paradigm makes your code more readable, reusable, debug-able, structured, and clean, and it is one of the core concepts of advanced software design.
Because Python is a very easy to learn programming language, most people never bother learning OOPs concepts in python, or even worse, they don’t even know that Python is object oriented. Despite you can build software without any OOP pattern, it is worthwhile learning to enhance and improve your coding.
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!
With Python 3 Object Oriented programming you will learn what OOP is all about, and specific design patterns for the Python language. While there are some good object oriented programming in Python tutorials out there, like this one from RealPython, they don’t quite cut it, as they lack exercises to test our understanding, and in-depth material.
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.
By the end of the book, you will have thoroughly learned object-oriented principles using Python syntax and you will be able to create robust and reliable programs confidently. If you are looking to go from average programmer, to real software developer, then you should definitely consider buying this book.
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.
The contents of the book are the following:
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?
As with any programming book, we advice to take a reading and coding approach to this book. If you simply read what there is, you will not grasp the concepts as well as if you sit in-front of your laptop or PC with the book by your side and code along as you go.
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 is a Canadian software developer and author currently living in New Brunswick. He has been active in the open source community for two decades and programming in Python for nearly as long. He holds a master’s degree in computer science and has worked for Facebook, the United Nations, and several startups. He’s currently researching privacy-preserving technology at beanstalk.network. Python 3 Object Oriented Programming was his first book and he really aced it! Thanks Dusty!
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
- Phillips, Dusty (Author)
- English (Publication Language)
- 466 Pages - 10/30/2018 (Publication Date) - Packt Publishing (Publisher)
Have a good day!