16 of 16 people found the following review helpful
A decent enough attempt at covering more advanced Python techniques,
This review is from: Expert Python Programming: Best practices for designing, coding, and distributing your Python software (Paperback)
I read the other review on this site which wasn't very positive, but bought the book anyway - after all AFAIK this is currently the only one-stop-shop book covering Python's more advanced techniques.
I must say that whilst there are occasional places where the author's English is less than brilliant it does not detract from the vast majority of the book and IMHO 1/5 is not a fair review. I read whole book in 2 days and perhaps had to reread 3 or 4 sentences, and even then I got what he was trying to say, even if it wasn't the most elegant English ever. I agree however that the publisher really, really should have spotted these - but don't write the book off because of this!
The book covered almost everything I expected and a few things I didn't. The great thing about it is that most of my advanced Python knowledge has been cobbled together from blogs, PEPs, and Python.org; it is great to have most of these topics in one book from one author who knows his stuff.
My main criticisms of the book are not the English. The thing that bugged me was that quite a few of the worked examples are over elaborate. With advanced techniques I'd expect the vehicle for demonstrating the technique to be as numpty as possible. However, often these examples are over complex, eg one example uses SQLAnalyser to demonstrate a technique - this is totally superfluous to the topic and you end up missing the wood because of the trees. I'm not a DB guy so I was annoyed I had to plod through DB code to peice together a technique I was interested in. Other authors (eg Scott Myers C++ examples) really strip down examples so you focus entirely on what is trying to be conveyed and not window-dressing-code in an attempt to make the example useful. It should be up to the reader to make the examples useful - espically at an advanced level - we don't need hand holding!
Technically the only glaring omission from the book I can think of is a section on using callable objects to implement decorators. I find this method of implementing decorators more pythonic, intutitive and less complex than the function-wrapped-in-a-function (wrapped-in-a-function and so on) method explained herein. This could be argued as personal coding taste/style, but both methods should have been included for completness.
My only other bugbear is I'd have liked to see more pages on pure python code techniques and less on building/maintaining/developing python - although other people may find this more interesting than I did, it was still an interesting read.
Summary: If you already know python but are yet to play with some of the more advanced techniques, or you want to brush up on what you've cobbled together from umpteen sites you found on Google - this book is the only one that will meet your requirements, and it does a decent, if not brilliant, attempt at conveying these ideas.