Author: Doug Hellmann
Publisher: Addison-Wesley, 2011
Aimed at: Intermediate Python programmers
Pros: Lots of useful code
Cons: Not all of it will port to Python 3
Reviewed by: Alex Armstrong
This big book is intended as a reference. Is it a good addtion to your bookshelf?
Once it was enough to master a language, but now you also have to master the frameworks that surround them. Python is an easy language to learn, but then you have its Standard Library to navigate you way through. If you don't know what is in the library you might well waste a great deal of time reinventing the wheel. Equally to know something exists but not to know exactly what it can do is a problem. This book attempts to show you the Standard Library in detail and so get you up to speed creating real Python programs.
The book is based on the popular "Python Module of the Week" blog series. You can still visit the blog and read the accounts at http://www.doughellmann.com/PyMOTW/. The book contains a lot of the same material but reworked and presented in Python 2.7. However, it has to be admitted that if you don't want the convenience of the book the website provides the same information for free. Having used the word "convenience" it has to be pointed out that at 1344 pages this is not an easy book to physically read.
The "by example" part of the title is reasonably accurate. The different functions and data structures are explained and then their use is illustrated by a, sometimes quite long, example. The topics covered are pretty much what you would expect: text. data structures, algorithms, dates and times, mathematics, the file system, data persistence and exchange, data compression and archiving, cryptography, processing and threads, networking, internet, email, application building blocks, internationalization and localization, tools, runtime features, language tools and finally modules and packages.
This is a big book and I certainly haven't read it from cover to cover. In most cases you are going to use it to clarify how some part of the library works when you have a specific problem to solve and in this role it makes excellent background reading.
To get very much from this book you have to be able to program in Python and this means it isn't for the beginner. At what level you would start to get something from the book is difficult to say, but even intermediate and advanced Python programmers will find features of the library they didn't know about. Many of the examples would port to Python 3, but don't expect them all to work as, of course, some of the modules have been removed from the language upgrade.
There is a lot of good code in this book and good code is worth buying.