A maneira Python de organizar módulos e pacotes

Eu venho de um fundo onde eu normalmente criar um arquivo por aula. Eu organizo classes comuns sob diretórios também. Esta prática é intuitiva para mim e provou ser eficaz em C ++, PHP, JavaSript, etc.

Estou tendo problemas em trazer essa metáfora para o Python: os arquivos não são mais apenas arquivos, mas são módulos formais. Não parece certo ter apenas uma classe em um módulo - a maioria das classes é inútil por si só. Se eu tiver umautomobile.py e umAutomobile classe, parece bobo para sempre referenciá-lo comoautomobile.Automobile também.

Mas, ao mesmo tempo, não parece certo jogar uma tonelada de código em um arquivo e chamá-lo por dia. Obviamente, um aplicativo muito complexo deve ter mais de cinco arquivos.

Qual é o caminho correto --- ou pythônico? (Ou, se não houver uma maneira correta, qual é o seu caminho preferido e por quê?) Quanto código eu deveria colocar em um módulo Python?

questionAnswers(5)

yourAnswerToTheQuestion