I recommend purchasing Expert Python Programming, by Tarek Ziadé . I am extremely disappointed in this book, but I'm recommending it specifically if you already have a good grasp of Python. You see, I was really looking forward to recommending this book. I had hoped that the many people I know with a good developer head on their shoulders, but had not approached Python with seriousness before, would find this a perfect introduction to sit down with. While I'm really pleased with the writing and structure of the content, I'm afraid this is a book suffering from severe editing oversights. There are subtle mix-ups in terminology in many places and some code samples that are simply and absolutely incorrect. This is where I made my decision: >>> from threading import RLock >>> lock = RLock() >>> def synchronized(function): ... def _synchronized(*args, **kwargs): ... lock.acquire() ... try: ... return function(*args, **kw