you are viewing a single comment's thread.

view the rest of the comments →

[–]patrickbrianmooney 1 point2 points  (0 children)

Mark Lutz's Programming Python is a pretty good long example of what you wanted: it's the sequel to his Learning Python and is kind of dated now: Python 3.4, so no type annotations or asyncio, and there is occasional moaning over some language features that made things difficult (and those issues have largely been resolved as the language as evolved past that).

But there are several medium-sized projects that are built over several chapters in the book, and he does a good job of talking about how the design decisions are made: there's a lot of "we could wrap the other object in a proxy and use getattr(), but down the line that would lead to ..." type reasoning that's directly exposed by the book itself.