I picked up “Effective Python : 59 Specific Ways to Write Better Python” back when I was first using Python at work. Most books on scripting languages are introductions, but this book is about advancing to the next level. I read the first half or so back when I picked it up. For the most part it was pretty useful. I set it aside sometime during the “Metaclasses and Attributes” chapter, when the topics turned to helper classes and abstractions that reminded me that Computer Science is a terrible way to live. But eventually I hunkered down and finished the book. Subsequent chapters were more useful.
The book is old enough that it still talks about differences between Python2 vs Python3. When I purchased it, the difference were relevant, but I suspect 50% of the people writing Python today couldn’t give you an example of a difference. (They made changes that broke common calls, like printing). But the main text is still relevant.
The weirdest thing about Python is that it came out at a time when parallel processing was in the main stream yet it does not process in parallel. [It can pretend, but you don’t see speedup]. The book does address this point and shows how people work around it.
Maybe there is a more current book on this topic, but I think Effective Python is still useful.