2.18. Використання модулів¶
Модуль – це набір Python-коду – функцій, класів, констант – упакований так, щоб його можна було повторно використовувати в різних скриптах. Python постачається зі стандартною бібліотекою, повною таких модулів, а мікропрограма OpenMV додає більше для роботи з камерою. Доступ до модуля здійснюється за допомогою import.
2.18.1. import¶
Найпряміша форма завантажує весь модуль під його власним ім’ям:
import math
print(math.sqrt(2))
Виведення:
1.4142135623730951
Після import кожне ім’я, визначене в math, доступне як math.<name>. Ім’я модуля береться з його імені файлу (без .py); префікс простору імен запобігає колізіям між двома модулями з однаковою назвою функції.
2.18.2. from … import¶
Щоб помістити конкретні імена безпосередньо в поточний простір імен, використовуйте from:
from math import sqrt, pi
print(sqrt(2), pi)
Виведення:
1.4142135623730951 3.141592653589793
Префікс простору імен більше не потрібен. Це зручно для часто використовуваних імен, але імпорт через from, що вводить багато імен, ускладнює визначення їхнього походження. Звичайний import math зазвичай є зрозумілішим у великих скриптах.
Форма зі зірочкою from math import * вводить усе, що експортує модуль. Уникайте її – вона засмічує простір імен і заважає автодоповненню IDE.
2.18.3. Псевдоніми за допомогою as¶
Довгі імена модулів можна скорочувати за допомогою as:
import json as j
j.dumps({"ok": True})
Той самий трюк працює для окремих імен, імпортованих за допомогою from:
from math import sqrt as root
root(9) # 3.0
Для загального Python-коду використовуйте псевдоніми лише тоді, коли оригінальне ім’я дійсно довге або конфліктує з чимось іншим у поточному просторі імен.
2.18.4. Доступні модулі¶
Довідник бібліотеки містить перелік усіх модулів, що постачаються з камерою – стандартна бібліотека MicroPython і специфічні для OpenMV модулі, що керують датчиком зображення, реалізують технічний зір і контролюють вбудоване апаратне забезпечення. Усі вони використовують той самий механізм import, показаний вище.