2.18. Usar módulos¶
Um módulo é uma coleção de código Python – funções, classes, constantes – empacotado para poder ser reutilizado em muitos scripts. O Python inclui uma biblioteca padrão cheia deles, e o firmware OpenMV adiciona mais para comunicar com a câmara. O acesso a um módulo é feito com import.
2.18.1. import¶
A forma mais direta importa o módulo inteiro com o seu próprio nome:
import math
print(math.sqrt(2))
Saída:
1.4142135623730951
Após o import, todos os nomes definidos por math são acessíveis como math.<name>. O nome do módulo vem do seu nome de ficheiro (sem .py); o prefixo de espaço de nomes impede que dois módulos com a mesma função colidam.
2.18.2. from … import¶
Para importar nomes específicos diretamente para o âmbito atual, use from:
from math import sqrt, pi
print(sqrt(2), pi)
Saída:
1.4142135623730951 3.141592653589793
Já não existe prefixo de espaço de nomes. Isto é conveniente para nomes muito usados, mas um from import que traz muitos nomes torna mais difícil perceber a origem de cada nome. O simples import math é geralmente mais claro em scripts maiores.
A forma com asterisco from math import * importa tudo o que o módulo exporta. Evite-a – polui o espaço de nomes e perturba o autocomplete do IDE.
2.18.3. Alias com as¶
Nomes de módulo longos podem ser abreviados com as:
import json as j
j.dumps({"ok": True})
O mesmo truque funciona com nomes individuais importados com from:
from math import sqrt as root
root(9) # 3.0
Para código Python geral, use alias apenas quando o nome original é genuinamente longo ou colide com algo já existente no âmbito.
2.18.4. Módulos disponíveis¶
A referência da biblioteca lista todos os módulos incluídos na câmara – a biblioteca padrão do MicroPython e os módulos específicos do OpenMV que controlam o sensor de imagem, executam visão por computador e controlam o hardware integrado. Todos utilizam o mesmo mecanismo de import apresentado acima.