Propaganda

Click é um pacote Python para escrever interfaces de linha de comando. Produz uma documentação bonita para você e permite criar interfaces de linha de comando em apenas uma linha de código. Em resumo: é incrível e pode ajudar a levar seus programas para o próximo nível.

Veja como você pode usá-lo para animar seus projetos em Python.

Escrevendo programas de linha de comando sem clique

É possível escrever programas de linha de comando sem usar o Click, mas isso exige mais esforço e muito mais código. Você precisa analisar os argumentos da linha de comando, executar a validação, desenvolver lógica para lidar com diferentes argumentos e criar um menu de ajuda personalizado. Deseja adicionar uma nova opção? Você estará modificando sua função de ajuda.

Não há nada errado em escrever seu próprio código, e é uma ótima maneira de aprender Python, mas o Click permite que você siga os princípios "Não se repita" (DRY). Sem o Click, você escreverá um código que é frágil e requer muita manutenção sempre que houver alterações.

Aqui está uma interface de linha de comando simples, codificada sem o Click:

sys de importação. import random def do_work (): Função para lidar com o uso da linha de comando args = sys.argv args = args [1:] # O primeiro elemento de args é o nome do arquivo se len (args) == 0: print ('Você não passou nenhum comando!') else: para a em args: if a == '--help': print ('Programa básico de linha de comando') print ('Opções:') print ('- -help -> mostrar este menu básico de ajuda. ') print (' --monty -> mostra uma citação de Monty Python. ') print (' --veg -> mostra um vegetal aleatório ') elif a ==' --monty ': print (' O que é isso, então? "Romanos eunt domus"? As pessoas chamam de romanos, eles vão, a casa? ') Elif a ==' --veg ': print (random.choice ([' Cenoura ',' batata ',' nabo '])) else: print (' argumento não reconhecido. ') se __name__ ==' __main__ ': do_work ()
Exemplo de interface de linha de comando Python

Essas 27 linhas de Python funcionam bem, mas são muito frágeis. Qualquer alteração feita no seu programa precisará de muitos outros códigos de suporte para alterar. Se você alterar o nome de um argumento, precisará atualizar as informações da ajuda. Esse código pode facilmente ficar fora de controle.

Aqui está a mesma lógica com o Click:

clique de importação. importar random @ click.command () @ click.option ('- monty', padrão = False, help = 'Mostrar uma citação de Monty Python.') @ click.option ('- veg', padrão = False, help = 'Mostrar um vegetal aleatório.') def do_work (monty, veg): Básico O exemplo de clique seguirá seus comandos se monty: print ('O que é isso, então? "Romanos eunt domus"? As pessoas chamam de romanos, eles vão, a casa? ') If veg: print (random.choice ([' Cenoura ',' Batata ',' Nabo ']))) se __name__ ==' __main__ ': do_work ()

Este exemplo Click implementa a mesma lógica em 16 linhas de código. Os argumentos são analisados ​​para você e a tela de ajuda é gerada:

Tela de ajuda do Python Click gerada automaticamente

Essa comparação básica mostra quanto tempo e esforço você pode economizar usando programas como o Click. Embora a interface da linha de comando possa parecer a mesma para o usuário final, o código subjacente é mais simples e você economiza muito tempo na codificação. Quaisquer alterações ou atualizações que você escrever no futuro também sofrerão aumentos significativos no tempo de desenvolvimento.

Introdução ao Click for Python

Antes de usar o Click, você pode querer configurar um ambiente virtual Aprenda a usar o ambiente virtual PythonSe você é um desenvolvedor experiente de Python ou está apenas começando, aprender como configurar um ambiente virtual é essencial para qualquer projeto Python. consulte Mais informação . Isso impedirá que seus pacotes Python entrem em conflito com o sistema Python ou outros projetos nos quais você esteja trabalhando. Você também poderia tente Python no seu navegador Experimente o Python no seu navegador com essas conchas interativas on-line gratuitasEsteja você examinando esses exemplos de Python ou revisando os conceitos básicos de matrizes e listas, pode testar o código diretamente no seu navegador. Aqui estão os melhores intérpretes online de Python que encontramos. consulte Mais informação se você quiser brincar com Python e Click.

Por fim, verifique se você está executando o Python versão 3. É possível usar o Click com Python versão 2, mas esses exemplos estão no Python 3. Saiba mais sobre o diferenças entre Python 2 e Python 3.

Quando estiver pronto, instale o Click na linha de comando usando o PIP (como instalar o PIP para Python):

clique em instalar pip

Escrevendo seu programa de primeiro clique

Em um editor de texto, comece importando o Clique:

clique de importação

Depois de importado, crie um método e um a Principal ponto de entrada. Nosso Guia de Python OOP aborda isso com mais detalhes, mas eles fornecem um local para armazenar seu código e uma maneira do Python começar a executá-lo:

clique de importação. import random def veg (): O método básico retornará uma impressão aleatória de vegetais (random.choice (['Cenoura', 'Batata', 'Nabo', 'Pastinaga']))) se __name__ == '__main__': veg ()

Este script muito simples produzirá um vegetal aleatório. Seu código pode parecer diferente, mas este exemplo simples é perfeito para combinar com o Click.

Salvar como click_example.pye execute-o na linha de comando (depois de navegar para o local):

python click_example.py

Você deve ver um nome aleatório de vegetal. Vamos melhorar as coisas adicionando o clique. Altere seu código para incluir os decoradores Click e um para ciclo:

@ click.command () @ click.option ('- total', padrão = 3, help = 'Número de vegetais a serem produzidos.') def veg (total): O método básico retornará um vegetal aleatório para número no intervalo (total): print (random.choice (['Cenoura', 'Batata', 'Nabo', 'Pastinaga']))) se __name__ == '__main__': veg ()

Ao correr, você verá um vegetal aleatório exibido três vezes.

Vamos detalhar essas mudanças. o @ click.command () configurações do decorador Clique para trabalhar com a função imediatamente após o decorador. Nesse caso, esse é o veg () função. Você precisará disso para todos os métodos que você deseja usar com o Click.

o @ click.option O decorator configura o clique para aceitar parâmetros da linha de comando, que será transmitida ao seu método. Existem três argumentos usados ​​aqui:

  1. -total: Este é o nome da linha de comandos para o total argumento.
  2. padrão: Se você não especificar o argumento total ao usar seu script, o Click usará o valor padrão.
  3. Socorro: Uma frase curta que explica como usar o seu programa.

Vamos ver o clique em ação. Na linha de comando, execute seu script, mas passe o comando total argumento como este:

python click_example.py - total de 10

Pela configuração –Total 10 na linha de comando, seu script imprimirá dez vegetais aleatórios.

Se você passar no -Socorro sinalizador, você verá uma boa página de ajuda, além das opções que pode usar:

python click_example.py --help
Ajuda do Python Click

Adicionando mais comandos

É possível usar muitos decoradores de cliques na mesma função. Adicione outra opção de clique ao veg função:

@ click.option ('- molho', padrão = False, help = 'Anexe "com molho" aos vegetais.')

Não se esqueça de passar isso para o método:

def veg (total, molho):

Agora, quando você executa seu arquivo, pode passar o molho bandeira:

python click_example.py - gravy y

A tela de ajuda também mudou:

Tela de ajuda do Python Click

Aqui está o código inteiro (com algumas refatorações menores para limpeza):

clique de importação. importar random @ click.command () @ click.option ('- molho', padrão = False, help = 'Anexe "com molho" aos vegetais.') @ click.option ('- total', padrão = 3, help = 'Número de vegetais a serem produzidos.') def veg (total, molho): O método básico retornará um vegetal aleatório para o número no intervalo (total): escolha = random.choice (['Cenoura', 'Batata', 'Nabo', 'Pastinaga']) if molho: print (f '{escolha} com molho') else: print (escolha) se __name__ == '__main__': veg ()

Ainda mais opções de clique

Depois de conhecer o básico, você pode começar a procurar opções de clique mais complexas. Neste exemplo, você aprenderá como passar vários valores para um único argumento, que o Click converterá em uma tupla. Você pode aprender mais sobre tuplas em nossa guia para o dicionário Python.

Crie um novo arquivo chamado click_example_2.py. Aqui está o código inicial que você precisa:

clique de importação. importar random @ click.command () def add (): O método básico adicionará dois números. passar se __name__ == '__main__': add ()

Não há nada de novo aqui. A seção anterior explica esse código em detalhes. Adicione um @ click.option chamado números:

@ click.option ('- numbers', nargs = 2, type = int, help = 'Adicione dois números juntos.')

O único código novo aqui é o nargs = 2, e as type = int opções Isso indica ao Click para aceitar dois valores para o números e que ambos devem ser do tipo números inteiros. Você pode alterar isso para qualquer número ou tipo de dados (válido) que desejar.

Por fim, altere o adicionar método para aceitar o números argumento e faça algum processamento com eles:

def add (numbers): O método básico adicionará dois números. resultado = números [0] + números [1] impressos (f '{números [0]} + {números [1]} = {resultado}')

Cada valor que você transmite é acessível através do números objeto. Veja como usá-lo na linha de comando:

python click_example_2.py --números 1 2
Resultado de narração de Python Click

Clique em É a solução para os utilitários Python

Como você viu, o Click é fácil de usar, mas muito poderoso. Embora esses exemplos abranjam apenas os princípios básicos do Click, há muitos outros recursos sobre os quais você pode aprender agora que possui uma sólida compreensão do básico.

Se você está procurando por alguns projetos Python para praticar suas novas habilidades encontradas, por que não aprender como controlar um Arduino com Python Como programar e controlar um Arduino com PythonInfelizmente, é impossível programar diretamente um Arduino em Python, mas você pode controlá-lo por USB usando um programa Python. Aqui está como. consulte Mais informação ou que tal lendo e escrevendo no Planilhas Google com Python Como ler e gravar no Google Sheets com PythonPython pode parecer estranho e incomum, no entanto, é fácil aprender e usar. Neste artigo, mostrarei como ler e escrever no Planilhas Google usando Python. consulte Mais informação ? Qualquer um desses projetos seria perfeito para converter para o Click!

Joe é graduado em Ciência da Computação pela Universidade de Lincoln, Reino Unido. Ele é um desenvolvedor de software profissional e, quando não está pilotando drones ou escrevendo músicas, pode ser encontrado tirando fotos ou produzindo vídeos.