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.