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 שהוצג למעלה.