2.18. Moduulien käyttö¶
Moduuli on kokoelma Python-koodia – funktioita, luokkia, vakioita – paketoituna niin, että sitä voidaan käyttää uudelleen monissa skripteissä. Python toimitetaan vakiokirjastolla, joka on täynnä niitä, ja OpenMV-laiteohjelmisto lisää lisää kameran kanssa kommunikointiin. Moduuliin tarttuminen tehdään komennolla import.
2.18.1. import¶
Suorin muoto vetää koko moduulin sisään sen omalla nimellä:
import math
print(math.sqrt(2))
Tuloste:
1.4142135623730951
Komennon import jälkeen jokainen moduulin math määrittelemä nimi on tavoitettavissa muodossa math.<name>. Moduulin nimi tulee sen tiedostonimestä (ilman .py-päätettä); nimiavaruuden etuliite estää kahta saman funktionimen sisältävää moduulia törmäämästä.
2.18.2. from … import¶
Vetääksesi tietyt nimet suoraan nykyiseen näkyvyysalueeseen, käytä komentoa from:
from math import sqrt, pi
print(sqrt(2), pi)
Tuloste:
1.4142135623730951 3.141592653589793
Nimiavaruuden etuliitettä ei enää ole. Tämä on kätevää usein käytetyille nimille, mutta from-tuonti, joka tuo monia nimiä, vaikeuttaa sen tunnistamista, mistä kukin nimi tuli. Pelkkä import math on yleensä selkeämpi suuremmissa skripteissä.
Tähtimuoto from math import * tuo kaiken, mitä moduuli vie. Ohita se – se saastuttaa nimiavaruuden ja sekoittaa IDE:n automaattisen täydennyksen.
2.18.3. Aliasointi as-sanalla¶
Pitkät moduulinimet voidaan lyhentää sanalla as:
import json as j
j.dumps({"ok": True})
Sama temppu toimii yksittäisiin nimiin, jotka on tuotu komennolla from:
from math import sqrt as root
root(9) # 3.0
Yleisessä Python-koodissa aliasoi vain, kun alkuperäinen nimi on todella pitkä tai törmää johonkin muuhun, mikä on jo näkyvyysalueessa.
2.18.4. Saatavilla olevat moduulit¶
Kirjastoviite luettelee jokaisen kameralla toimitetun moduulin – MicroPythonin vakiokirjaston ja OpenMV-kohtaiset moduulit, jotka ohjaavat kuvasensoria, suorittavat konenäköä ja ohjaavat sisäänrakennettua laitteistoa. Ne kaikki käyttävät samaa edellä esitettyä import-mekanismia.