2.18. Korištenje modula¶
Modul je zbirka Python koda – funkcija, klasa, konstanti – zapakirana tako da se može ponovno koristiti u mnogo skripti. Python dolazi sa standardnom bibliotekom punom njih, a OpenMV firmware dodaje još za komunikaciju s kamerom. Posezanje za modulom obavlja se pomoću import.
2.18.1. import¶
Najizravniji oblik uvlači cijeli modul pod njegovim vlastitim imenom:
import math
print(math.sqrt(2))
Izlaz:
1.4142135623730951
Nakon import-a, svako ime definirano u math dostupno je kao math.<name>. Ime modula dolazi iz njegova naziva datoteke (bez .py); prefiks prostora imena sprječava da se dva modula s istim imenom funkcije sudare.
2.18.2. from … import¶
Za uvlačenje određenih imena izravno u trenutačni doseg, koristite from:
from math import sqrt, pi
print(sqrt(2), pi)
Izlaz:
1.4142135623730951 3.141592653589793
Više nema prefiksa prostora imena. To je zgodno za imena koja se mnogo koriste, ali from uvoz koji unosi mnogo imena otežava utvrđivanje odakle je svako ime došlo. Obični import math obično je jasniji u većim skriptama.
Zvjezdasti oblik from math import * unosi sve što modul izvozi. Preskočite ga – onečišćuje prostor imena i zbunjuje IDE-ovo automatsko dovršavanje.
2.18.3. Davanje pseudonima pomoću as¶
Duga imena modula mogu se skratiti pomoću as:
import json as j
j.dumps({"ok": True})
Isti trik radi na pojedinačnim imenima uvezenima pomoću from:
from math import sqrt as root
root(9) # 3.0
Za opći Python kod, dajte pseudonim samo kada je izvorno ime uistinu dugo ili se sukobljava s nečim drugim već u dosegu.
2.18.4. Dostupni moduli¶
Referenca biblioteke navodi svaki modul isporučen na kameri – MicroPython standardnu biblioteku i OpenMV-specifične module koji pokreću senzor slike, izvode strojni vid i upravljaju hardverom na ploči. Svi oni koriste isti mehanizam import prikazan iznad.