2.18. Menggunakan modul

Sebuah modul adalah kumpulan kode Python -- fungsi, kelas, konstanta -- yang dikemas sehingga dapat digunakan kembali di banyak skrip. Python dilengkapi dengan perpustakaan standar yang penuh dengan modul, dan firmware OpenMV menambahkan lebih banyak untuk berinteraksi dengan kamera. Mengakses modul dilakukan dengan import.

2.18.1. import

Bentuk paling langsung mengambil seluruh modul di bawah namanya sendiri:

import math

print(math.sqrt(2))

Output:

1.4142135623730951

Setelah import, setiap nama yang didefinisikan oleh math dapat diakses sebagai math.<name>. Nama modul berasal dari nama filenya (tanpa .py); awalan namespace mencegah dua modul dengan nama fungsi yang sama dari tabrakan.

2.18.2. from ... import

Untuk mengambil nama tertentu langsung ke dalam cakupan saat ini, gunakan from:

from math import sqrt, pi

print(sqrt(2), pi)

Output:

1.4142135623730951 3.141592653589793

Tidak ada awalan namespace lagi. Ini nyaman untuk nama yang sering digunakan, tetapi impor from yang membawa banyak nama membuatnya lebih sulit untuk mengetahui dari mana setiap nama berasal. import math biasa biasanya lebih jelas dalam skrip yang lebih besar.

Bentuk bintang from math import * membawa semua hal yang diekspor oleh modul. Lewati ini -- ini mengotori namespace dan mengganggu autocompletion IDE.

2.18.3. Aliasing dengan as

Nama modul yang panjang dapat dipersingkat dengan as:

import json as j

j.dumps({"ok": True})

Trik yang sama bekerja pada nama individual yang diimpor dengan from:

from math import sqrt as root

root(9)              # 3.0

Untuk kode Python umum, buat alias hanya ketika nama asli benar-benar panjang atau bertabrakan dengan sesuatu yang sudah ada dalam cakupan.

2.18.4. Modul yang tersedia

Referensi library reference mencantumkan setiap modul yang dikirimkan pada kamera -- perpustakaan standar MicroPython dan modul khusus OpenMV yang mengendalikan sensor citra, menjalankan visi mesin, dan mengontrol perangkat keras on-board. Semuanya menggunakan mekanisme import yang sama seperti yang ditunjukkan di atas.