2.18. Modülleri kullanma¶
Bir modül, birçok betikte yeniden kullanılabilmesi için paketlenmiş bir Python kodu koleksiyonudur – fonksiyonlar, sınıflar, sabitler. Python, bunlarla dolu bir standart kütüphane ile gelir ve OpenMV aygıt yazılımı (firmware) kamerayla iletişim kurmak için daha fazlasını ekler. Bir modüle erişim import ile yapılır.
2.18.1. import¶
En doğrudan biçim, modülün tamamını kendi adı altında getirir:
import math
print(math.sqrt(2))
Çıktı:
1.4142135623730951
import‘tan sonra, math tarafından tanımlanan her isme math.<name> olarak erişilebilir. Modül adı dosya adından gelir (.py olmadan); ad alanı öneki, aynı fonksiyon adına sahip iki modülün çakışmasını önler.
2.18.2. from … import¶
Belirli isimleri doğrudan mevcut kapsama getirmek için from kullanın:
from math import sqrt, pi
print(sqrt(2), pi)
Çıktı:
1.4142135623730951 3.141592653589793
Artık bir ad alanı öneki yoktur. Bu, çok kullanılan isimler için kullanışlıdır, ancak birçok isim getiren bir from içe aktarması, her ismin nereden geldiğini söylemeyi zorlaştırır. Düz import math genellikle büyük betiklerde daha açıktır.
Yıldız biçimi from math import *, modülün dışa aktardığı her şeyi getirir. Bunu kullanmayın – ad alanını kirletir ve IDE’nin otomatik tamamlamasını şaşırtır.
2.18.3. as ile takma ad verme¶
Uzun modül adları as ile kısaltılabilir:
import json as j
j.dumps({"ok": True})
Aynı numara, from ile içe aktarılan tekil isimlerde de işe yarar:
from math import sqrt as root
root(9) # 3.0
Genel Python kodunda, yalnızca orijinal ad gerçekten uzunsa veya kapsamda zaten bulunan başka bir şeyle çakışıyorsa takma ad verin.
2.18.4. Mevcut modüller¶
kütüphane referansı kamerada gönderilen her modülü listeler – MicroPython standart kütüphanesi ve görüntü sensörünü süren, makine görüşü çalıştıran ve yerleşik donanımı kontrol eden OpenMV’ye özgü modüller. Hepsi yukarıda gösterilen aynı import mekanizmasını kullanır.