Arjancodes
Software design course + pythonic design patterns
By far, the best course out there that not only offers an introduction to the formal concepts but goes through the practical details is Arjan's Software Design Mindset. For anyone who learns like I do, this is an absolute gem.
There is also an extension that includes Pythonic design patterns that I cannot find the link for but can highly recommend once you get through the first course.
Together, they're so comprehensive and manage to cover every aspect of modern pythonic programming. It has dramatically increased my productivity as a developer and made the whole process so much more enjoyable.
YouTube
If you cannot afford the course, I would still recommend Arjancodes' YouTube channel. He has some fantastic videos that put the principles into practice. Some of my early favorites, before I eventually decided to take his course, were cohesion and coupling, composition vs inheritance, SOLID design principles, abstraction and composition, the other videos on refactoring data science projects (pt 2, 3), and then some others on using dataclasses, pydantic, ABC vs protocol. that make OOP life easier.