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 de json, e empacotar registos binários com struct com 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âmicoid(), 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 re para 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 quando str.find ou str.split já não chegam.

  • Coleções para além das internascollections.namedtuple() para registos tipados, collections.deque para buffers de anel limitados e janelas deslizantes, collections.OrderedDict quando a ordem de inserção faz parte da igualdade, e heapq para 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ódulo logging) 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.