This is a very good book on object-oriented programming in python. The chapters are well-written with good examples. The case study at the end of each chapter is comprehensive. There is a good introduction to design patterns - 2 chapters are devoted to them. The bonus topic of concurrency is nice to have and illuminating.
A really good book for beginners in OOP and Python programming. Specially valuable if you're coming from a Systems engineering background and have mostly used Python for automation and scripting, and would now like to write some programs instead.
This is not a good book. I was fooled into thinking that this an easy to read book when I went through some of the sample stuff as the author uses a simple, conversational tone and this is something that I look for when I buy programming books. I would rather read a friendly, conversational book than an academic one. But still, there is something deceptively confusing about it that I am not able to put my finger on. In spite of the easy conversational writing style, in spite of the language being the user-friendly Python, in spite of me knowing the basics of this language and OOP, I still struggled to get past chapter 3.