2.42. Conclusão¶
Percorreu as partes do Python que surgem constantemente ao escrever scripts para a OpenMV Cam:
Os fundamentos da linguagem – valores e variáveis, aritmética e comparação, strings e bytes, as quatro coleções principais (
list,tuple,dict,set), condicionais e ciclos, definição de funções e gestão dos seus argumentos e âmbito, definição de classes e uso de herança, lançamento e tratamento de exceções. Estes são os tijolos com que toda a outra parte do Python é construída.As peças estruturais – dividir código em módulos e pacotes, importar o que se precisa, ler e escrever ficheiros com
with, trocar dados estruturados através dejson, e empacotar registos binários comstructcom endianness e campos inteiros de largura fixa. Surgem assim que um script cresce para além de um único ficheiro ou precisa de comunicar com algo exterior.As partes que mudam de forma num runtime com restrições – porque é que os floats do MicroPython são de 32 bits e como compará-los de forma fiável, como o coletor de lixo distribui e recupera blocos, porque é que a fragmentação importa numa heap pequena, e como a pré-alocação mantém os scripts de longa duração com bom comportamento. Os hábitos de desktop por vezes enganam aqui; este material dá-lhe o modelo mental correto para código que vive no dispositivo.
As ferramentas de introspecção e de código dinâmico –
id(),hash(),isinstance(),issubclass(),callable(),globals(),locals()para examinar valores e o ambiente;eval()/exec()/compile()para os casos raros em que produzir código em tempo de execução é a resposta certa. A maioria dos scripts nunca toca nisto, mas saber que existem (e quando não recorrer a eles) faz parte de ler o Python de outras pessoas.Correspondência de padrões em texto – o módulo
repara strings cuja forma se pode descrever mas não enumerar. Classes de caracteres, quantificadores, grupos de captura, âncoras, e o compromisso entre greedy e lazy, juntamente com os locais específicos onde o subconjunto do MicroPython fica aquém do CPython. Recorra a ele quandostr.findoustr.splitjá não chegam.Coleções para além das internas –
collections.namedtuple()para registos tipados,collections.dequepara buffers de anel limitados e janelas deslizantes,collections.OrderedDictquando a ordem de inserção faz parte da igualdade, eheapqpara questões do tipo «qual é o menor» ou «qual é o mais urgente» construídas sobre uma lista simples. Cada uma preenche uma lacuna que os quatro tipos de coleção principais deixam em aberto.As ferramentas de fluxo de trabalho do quotidiano – compreensões para construir coleções a partir de coleções existentes, geradores e o protocolo iterador para processar dados de forma lazy, decoradores e gestores de contexto para envolver padrões comuns de adquirir/libertar e antes/depois, e os hábitos de depuração (ler tracebacks,
repr(),dir(),help(), o módulologging) que transformam um script com erros num script corrigido.
2.42.1. Usar este guia mais tarde¶
Trate o guia como material de referência, não como uma leitura de uma só passagem. Os capítulos são curtos propositadamente; voltar para refrescar conhecimentos sobre fatiamento, gestores de contexto ou compreensões é o uso previsto. Guarde nos favoritos a secção a que recorre mais.
Se algo na documentação da câmara referenciar posteriormente um conceito Python que não reconhece – por exemplo, «isto devolve um gestor de contexto» ou «itere o resultado» – a página correspondente do guia é o ponto de partida.
2.42.2. Para onde ir a seguir¶
O controlo básico de hardware baseia-se diretamente no Python que já conhece. Enquanto o guia vivia na memória, o controlo de hardware vive no mundo físico – tensões em pinos, pulsos em fios, bytes transferidos por barramento para outros chips. O conjunto de ferramentas passa para o módulo machine e uma fina camada de eletrónica. Tudo o que aprendeu no guia continua a aplicar-se; não terá de reaprender def ou with ou como bytearray difere de bytes.
Quando encontrar uma funcionalidade Python que pareça desconhecida no material de hardware, este guia é o sítio a que deve regressar.