Book Preview: Python 3 Object Oriented Programming

In late December, I was approached by Packt Publishing to write a book on wxPython. I turned them down because the editor’s vision for the book and mine did not mesh. Anyway, I did end up accepting the job of being a technical editor for one of their upcoming books: Python 3 Object Oriented Programming by Dusty Phillips. I started doing that in January 2010. The “pay” is a copy of the book plus one other book of my choice from Packt’s catalog. That’s it. I won’t get either book until this one is published, which is supposed to happen in August of this year. This article is a preview of the book.

I didn’t learn the author’s name until several months after I started reviewing the book. For some reason, Packt wouldn’t give me that information. Fortunately, Dusty Phillips eventually revealed his name in the book’s text. Finding his website is a little difficult, but here it is: http://archlinux.me/dusty/. It looks like he wrote up a little piece on his book there as well.

Anyway, on to the preview of the book.

This is not your typical Python book. The first chapter isn’t some simple introduction to the language. In fact, there isn’t even any code whatsoever in the first chapter. Instead, you get lots of UML diagrams and theory around what Object Oriented Programming (OOP) is all about. Oddly enough, it was still an interesting chapter and kind of refreshing in the fact that it strayed from the norm.

The first chapter is followed by eleven more. The next four chapters really dig into how Python use of object oriented programming is built into the language. In chapter 2, you learn how to create classes, add properties, and create modules and packages. Chapter 3 take the reader through inheritance, polymorphism and duck-typing. For Chapter 4, the author takes us into the world of exception handling, including how to create your own custom exceptions. In most chapters, you also get a case study or some exercises and sometimes you’ll get both.

Here’s a quick rundown of the next third of the book:

  • Chapter 5 is on when to use OOP in Python, refactoring and the DRY principle
  • Chapter 6 covers basic Python data structures (i.e. lists, dicts, sets, etc)
  • In Chapter 7 we cover some builtins; list, dict and set comprehensions, generators and overloading
  • Finally, in Chapter 8 we start learning about Design Patterns, like the Observer Pattern or the Strategy Pattern

I personally found the Design Patterns chapters to be some of the most interesting. The author actually extends this section into chapter 9 as well. Anyway, I think I learned a lot from this section of the book and I hope to be able to use some of these patterns in my own work.

The last three chapters are about strings and files (Chapter 10); Testing in Python with unit tests, nose, py.test and more; and a quick tour of some popular third party modules/packages, like PyQT, CherryPy, and SqlAlchemy.

Most of the chapters I saw were still in their first or second draft, so they were a little rough. However, most of the information looked really good and I think this will actually be one of Packt’s best releases to date. I own several of their other Python books and none of them are of this quality (assuming that the author actually took his editors’ advice seriously). I’m not shy about criticizing poorly written books or movies, as my friends will attest. If you’d like to learn more about how to use Python in an object oriented way, I think this book will serve you well. You can pre-order the book from Packt (alas, I get no kickback whatsoever…so feel free to order from Amazon or your favorite book seller…I only link it here because it’s the easiest).

5 thoughts on “Book Preview: Python 3 Object Oriented Programming”

  1. Thanks, Mike, both for the positive review and for the time, effort, and incredible attention to detail you put into your technical review of Python 3 OOP. I took every comment to heart, and I hope the end result not only meets, but exceeds your expectations.

    If I ever run into you at Pycon, I owe each of my reviewers a beer. Two books is not enough payment for the time and effort you all put in! Also, if a book on wxPython does originate from your keyboard, I'd be honored to review it.

  2. It's nice to know you. I hope you enjoyed the book as well and hopefully you'll find this blog interesting too.

    – Mike

  3. We won’t get either book until this one is published, which is supposed to happen. This article is a preview of the book.The first chapter isn’t some simple introduction to the language. In chapter 2, you learn how to create classes, add properties, and create modules and packages. Chapter 3 take the reader through inheritance, polymorphism and duck-typing. For Chapter 4, the author takes us into the world of exception handling, including how to create your own custom exceptions. Thanks for your great and informative article G-d bless 🙂

  4. We won’t get either book until this one is published, which is supposed to happen. This article is a preview of the book.The first chapter isn’t some simple introduction to the language. In chapter 2, you learn how to create classes, add properties, and create modules and packages. Chapter 3 take the reader through inheritance, polymorphism and duck-typing. For Chapter 4, the author takes us into the world of exception handling, including how to create your own custom exceptions. Thanks for your great and informative article G-d bless 🙂

Comments are closed.