Para ver o documento original (em inglês), acesse:
http://www.python.org/dev/peps/pep-0008/
Este documento fornece as convenções de estilo para o código
Python, incluindo a biblioteca padrão na distribuição Python principal.
Para informações sobre as convenções para C no CPython (a implementação padrão), consulte a
PEP 7. Esta PEP pode ainda estar incompleta (na verdade, ela pode nunca ser terminada).
Uma das ideias-chave de Guido é que o código é lido com muito mais frequência do que é escrito. As orientações fornecidas aqui são destinadas a melhorar a legibilidade do código e torná-lo coerente em todo o amplo espectro de código Python. Como diz a
PEP 20 (The Zen of Python), "Readability counts" (legibilidade conta).
Um guia de estilo fala sobre de coerência. Coerência com este guia de estilo é importantes. Coerência dentro de um projeto é mais importante. Coerência dentro de um módulo ou função é ainda mais importante.
Mas o mais importante: saber quando ser inconsistente - às vezes o guia de estilo simplesmente não se aplica a algum caso.
Quando em dúvida, use o bom senso. Veja outros exemplos e decida o que fica melhor. E não hesite em perguntar!
Dois bons motivos para quebrar uma regra:
- Quando a aplicação da regra tornaria o código menos legível
- Para ser coerente com código que também quebra-o (talvez por razões históricas) - embora esta seja também uma oportunidade para limpar a bagunça de alguém.
Tabs ou espaços?
Nunca misture tabs e espaços.
Para indentação, use 4 espaços.
Para projetos mais antigos que você não queira bagunçar, use uma tab, que é equivalente a 8 espaços.
A indentação mais popular no Python são os espaços. A segunda mais popular são as tabs. Código que usa as duas indentações deve ser convertido para espaços apenas. Quando invocado com a opção -t, o interpretador mostra avisos com uso de tabs e espaços no mesmo código. Quando é invocado com -tt, os avisos se tornam erros. Essas opções são altamente recomendadas.
Para novos projetos, use espaços. Há vários editores com ferramentas para facilitar isso.