Escrever código funcional nem sempre é suficiente; você deve tentar escrever um código bem estruturado que também seja fácil de entender. O código limpo facilitará para você — e para outras pessoas — a manutenção do seu software.
O Python tem muitos recursos e funções que podem ajudá-lo a escrever um código mais limpo. Aqui estão alguns dos melhores.
1. Automatize o fechamento de recursos com o Context Manager
Fechar recursos manualmente pode ser inconveniente quando seu código está interagindo com muitos recursos. Você pode esquecer de fechar um recurso. Isso faz com que seu programa use os recursos do sistema de forma ineficiente, o que pode levar a um vazamento de memória.
Este código abre um arquivo e o fecha manualmente:
arquivo = abrir('teste.txt', 'r')
file_contents = file.read()
arquivo.close()
palavras = arquivo_conteúdo.split(' ')
word_count = len (palavras)
imprimir (contagem_de_palavras)
Você pode automatizar o fechamento do arquivo usando um gerenciador de contexto. Os gerenciadores de contexto lidam com os recursos para você, para que você não precise se lembrar de gerenciá-los manualmente. Use o com declaração para criar um contexto para gerenciar um recurso:
com abrir('teste.txt', 'r') como arquivo:
file_contents = file.read()
palavras = arquivo_conteúdo.split(' ')
word_count = len (palavras)
imprimir (contagem_de_palavras)
O código neste bloco é executado dentro do contexto do objeto de arquivo que abrir retorna. O Python fecha automaticamente esse arquivo quando o código sai desse contexto, mesmo que ocorra uma exceção.
2. Escrevendo declarações condicionais mais limpas
Você pode acabar escrevendo muitos códigos desnecessários ao lidar com declarações if-else. O Python possui operadores ternários que o ajudarão a escrever instruções mais compactas. O bloco de código abaixo mostra uma instrução if-else normal.
condição = Verdadeiro
se doença:
x = 1
outro:
x = 0
imprimir (x)
Você pode reescrever esse código usando um operador ternário que permite escrever a condição em uma única linha de código.
condição = Verdadeiro
x = 1se doença outro0
imprimir (x)
É importante observar que você deve usar operadores ternários ao implementar lógica simples. Em lógicas mais complexas e instruções condicionais aninhadas, o operador ternário pode se tornar difícil de entender.
3. Acompanhando os itens com a função Enumerate
Ao iterar em uma lista do Python, você pode acessar o índice do item atual de duas maneiras. Uma maneira é usar o loop for tradicional. Isso funciona bem, mas o código não é tão limpo quanto poderia ser. Também requer que você inicialize o índice manualmente.
carros = ['Bugatti', 'Mercedes', 'Toyota']
índice = 0
para carro em carros:
imprimir (índice, carro)
índice += 1
A outra maneira é usar a função enumerate interna do Python. Isso permitirá que você acesse o índice e o valor correspondente na lista durante o loop.
carros = ['Bugatti', 'Mercedes', 'Toyota']
para índice, carro em enumerar (carros):
imprimir (índice, carro)
Agora você não precisa acompanhar o índice manualmente.
4. Fazendo um loop em várias listas com a função Zip
Você também pode usar a função enumerate para percorrer várias listas de uma só vez. Obtenha o índice da primeira lista e use-o para acessar os valores correspondentes em outras listas.
nomes_ingleses = ['comida', 'água', 'carro']
nomes_espanhóis = ['alimento', 'água', 'auto']
para índice, nome em enumerar (english_names):
espanhol = nomes_espanhóis [índice]
imprimir (f' {nome} em espanhol é {espanhol}')
Isso funciona bem, mas você terá que escrever muito código desnecessário se o número de listas aumentar. Para escrever um código mais limpo, você pode usar a função zip e passar os nomes de sua lista para ela.
nomes_ingleses = ['comida', 'água', 'carro']
nomes_espanhóis = ['alimento', 'água', 'auto']
para inglês espanhol em zip (english_names, spanish_names):
imprimir(f' {inglês} em espanhol é {espanhol}')
Você deve continuar usando a função enumerar para loop sobre uma única lista. Mas se você estiver repetindo várias listas juntas, considere usar a função zip.
Ao inserir informações confidenciais, a entrada não deve ser visível como texto simples na tela. A maneira usual de obter entrada em Python é usar a função de entrada:
usuario = input('Nome de usuário: ')
senha = entrada('Senha: ')
imprimir('Fazendo login...')
No entanto, a função de entrada torna a senha visível como texto simples na tela durante a digitação. Para garantir que a senha não seja exibida na tela, você deve usar a função getpass:
de Obter passagem importar Obter passagem
usuario = input('Nome de usuário: ')
senha = getpass('Senha:')
imprimir('Fazendo login...')
O módulo getpass faz parte da biblioteca padrão do Python, então você não precisa instalá-lo.
6. Tornar números grandes legíveis usando espaços reservados para sublinhado
Quando você está lidando com grandes números em seu programa, eles podem ser muito difíceis de ler de relance. Atribuir números incorretos a variáveis leva a um programa defeituoso e detectar esse erro pode ser muito difícil.
num1 = 10000000000
num2 = 100000000
total = num1 + num2
imprimir (total)
Você pode reescrever o código acima usando sublinhados para separar grupos de milhares, uma forma comum de tornar os números grandes mais legíveis.
num1 = 10_000_000_000
num2 = 100_000_000
total = num1 + num2
imprimir(f'{total:,}')
A string f na função print separa a saída usando o separador de milhar.
7. Usando a função de ajuda para aprender mais sobre um módulo
A função de ajuda é muito importante em Python. Ele permitirá que você saiba como usar um módulo que você instalou. Para usá-lo, instale o módulo, inicie o interpretador Python em um terminal e aponte para o caminho em que você instalou o módulo. Importe o módulo e, finalmente, passe o nome do módulo para a função de ajuda.
Para descobrir quais métodos e atributos você pode usar, substitua a função help pela função dir.
A função dir retorna os métodos e atributos que o módulo suporta, não toda a documentação. Isso é útil quando você deseja ter uma ideia do que o módulo faz.
Escrevendo código Python mais limpo
Python é uma linguagem muito diversa. Assim como em qualquer outra linguagem, você ficará melhor escrevendo códigos Python mais limpos com o tempo.
O Python tem muitos módulos e funções integrados. Em alguns casos, você pode escrever um código difícil de ler porque não tem conhecimento da existência de uma determinada função. Para se certificar de que você está mais informado, você deve ler mais artigos sobre como escrever um código melhor.