Recomiendo encarecidamente el dominio de Python orientado a objetos por Steven Lott. Cubre todos los aspectos del código python desarrollado profesionalmente desde una perspectiva OO. También cubre en gran medida el análisis y diseño de OO. Además, proporciona una muy buena comprensión de Python en general con problemas de la vida real.
Si está buscando un libro de texto más general, le sugiero que automatice las cosas aburridas con Python de Albert Sweigart. Puede parecer un poco esotérico, pero la mejor manera de aprender algo es mantenerse motivado y aprender a desarrollar herramientas de automatización en el proceso mientras se aprende un nuevo idioma. Está muy bien escrito.
Si buscas algo más tradicional, te recomiendo Learning Python de Mark Lutz. Tiene más de 1500 páginas y ofrece una comprensión muy detallada de la programación de Python para 2.7+ y 3+ (dos versiones principales de Python).