הקדמה
שפת התכנות פייתון מגיעה עם מגוון פונקציות מובנות. בתוכן נמנים מספר פונקציות נפוצות, כוללות:
print()
שמדפיסה ביטוייםabs()
שמחזירה את הערך המוחלט של מספרint()
שממירה טיפוס נתונים אחר למספר שלםlen()
שמחזירה את אורך הרצף או האוסף
עם זאת, הפונקציות המובנות הללו מוגבלות, ואנו יכולים להשתמש במודולים כדי ליצור תוכניות מתוחכמות יותר.
מודולים הם קבצי .py
בפייתון שמכילים קוד פייתון. כל קובץ פייתון יכול לשמש כמודול. קובץ פייתון בשם hello.py
מקבל את שם המודול hello
שניתן לייבא לקבצי פייתון אחרים או להשתמש בו במפענח הפקודות של פייתון. ניתן ללמוד על יצירת מודולים משלך על ידי קריאה של כיצד לכתוב מודולים בפייתון 3.
מודולים יכולים להגדיר פונקציות, מחלקות, ו- משתנים שאתה יכול להתייחס אליהם בקבצי .py
פייתון אחרים או דרך מפענח הפקודות של פייתון.
בפייתון, מודולים נגישים על ידי שימוש בהצהרת import
. כאשר אתה עושה זאת, אתה מבצע את קוד המודול, שומר את תחומי ההגדרות כך שהקבצים הנוכחיים שלך יכולים להשתמש בהם.
כאשר פייתון מייבא מודול בשם hello
לדוגמה, מפענח הפייתון יחפש תחילה מודול מובנה בשם hello
. אם מודול מובנה לא נמצא, מפענח הפייתון יחפש אזור בשם hello.py
ברשימת הספריות שהוא מקבל מהמשתנה sys.path
.
מדריך זה ילמד אותך כיצד לבדוק ולהתקין מודולים, לייבא מודולים וליצור שמות ניתנים לשימוש למודולים.
דרישות מוקדמות
עליך להתקין Python 3 ולהגדיר סביבת פיתוח במחשב או בשרת שלך. אם אין לך סביבת פיתוח מוגדרת, תוכל להפנות למדריכי ההתקנה וההגדרה עבור סביבת פיתוח מקומית או עבור סביבת פיתוח על השרת שלך המתאימה למערכת ההפעלה שלך (Ubuntu, CentOS, Debian וכו')
בדיקת והתקנת מודולים
ישנם מספר מודולים שכלולים בתוך ספריית הסטנדרט של Python, שמכילה מודולים רבים המספקים גישה לפונקציות המערכת או מספקים פתרונות מתוקנים. ספריית הסטנדרט של Python היא חלק מכל התקנת Python.
מידע: כדי לעקוב אחרי הקוד הדוגמא במדריך זה, פתח מסוף Python אינטראקטיבי במערכת המקומית שלך על ידי הרצת הפקודה python3
. לאחר מכן תוכל להעתיק, להדביק או לערוך את הדוגמאות על ידי הוספתן אחרי הפתיחת >>>
.
כדי לוודא שכל מודולי ה-Python האלה מוכנים לשימוש, היכנסו לסביבת הפיתוח המקומית שלכם או לסביבת הפיתוח המבוססת שרת והתחילו את מפעיל ה-Python בשורת הפקודה שלכם כך:
מתוך מפעיל ה-Python תוכלו להפעיל את הפקודה import
כדי לוודא שהמודול הנתון מוכן לשימוש, כך:
מכיוון ש-math
הוא מודול מובנה, מפעיל ה-Python שלכם צריך להשלים את המשימה ללא משוב, ולחזור לדפנה. זה אומר שאין צורך לעשות כלום כדי להתחיל להשתמש במודול math
.
בואו נריץ את הפקודה import
עם מודול שאולי אין לכם מותקן, כמו ספריית השרטוטים דו-ממדית matplotlib
:
אם matplotlib
אינו מותקן, תקבלו שגיאה כזו:
OutputImportError: No module named 'matplotlib'
ניתן להשבית את מפעיל ה-Python עם CTRL + D
ולאחר מכן להתקין את matplotlib
באמצעות pip
.
לאחר מכן, נוכל להשתמש ב-pip
כדי להתקין את מודול matplotlib
:
כאשר הוא מותקן, תוכלו לייבא את matplotlib
במפעיל ה-Python באמצעות import matplotlib
, והוא יושלם ללא שגיאות.
ייבוא מודולים
כדי להשתמש בפונקציות במודול, עליכם לייבא את המודול באמצעות הצהרת import
.
import
הצהרה עשויה ממילת המפתח import
יחד עם שם המודול.
בקובץ פייתון, זה יידרש להוגדר בראש הקוד, מתחת לשורות ה- shebang או ההערות הכלליות.
לכן, בקובץ התכנית הפייתונית my_rand_int.py
נייבא את המודול random
כדי ליצור מספרים אקראיים בדרך הבאה:
כאשר אנו מייבאים מודול, אנו מפעילים אותו זמין עבורנו בתוך התכנית הנוכחית שלנו כמרחב שמות נפרד. זה אומר שנצטרך להתייחס לפונקציה בתור רישום נקודה, כמו כן: [module].[function]
.
במעשה, עם הדוגמה של המודול random
, זה עשוי להיראות כמו פונקציה כזו:
-
random.randint()
אשר קוראת לפונקציה כדי להחזיר מספר שלם אקראי, או -
random.randrange()
אשר קוראת לפונקציה כדי להחזיר איבר אקראי מטווח מסוים.
בואו ניצור לולאת for
כדי להראות כיצד נקרא לפונקציה של המודול random
בתוך התכנית שלנו my_rand_int.py
:
התכנית הקטנה הזו רושמת את המודול random
בשורה הראשונה, ואז עוברת לתוך לולאת for
שתעבוד עם 10 אלמנטים. בתוך הלולאה, התוכנית תדפיס מספר שלם אקראי בתחום של 1 עד 25 (כולל). המספרים 1
ו־25
מועברים ל־random.randint()
כפרמטרים שלו.
כאשר אנו מפעילים את התוכנית עם python my_rand_int.py
, נקבל 10 מספרים אקראיים כפלט. מכיוון שאלו מספרים אקראיים, כנראה תקבלו מספרים שונים בכל פעם שתריצו את התוכנית, אך הם יצורו משהו דומה לזה:
Output6
9
1
14
3
22
10
1
15
9
המספרים לא צריכים לעבור מתחת ל־1 או למעלה מ־25.
אם ברצונך להשתמש בפונקציות מיותר ממודול אחד, תוכל לעשות זאת על ידי הוספת מספר רב של הצהרות import
:
עשוי להיראות תוכניות שמייבאות מספר מודולים עם פסיקים המפרידים ביניהם — כמו import random, math
— אך זה לא עומד בהנחיות הסגנון של PEP 8.
כדי להשתמש במודול הנוסף שלנו, נוכל להוסיף את הקבוע pi
מתוך math
לתוכנית שלנו, ולהפחית את מספר המספרים האקראיים המודפסים:
עכשיו, כאשר אנו מפעילים את התוכנית שלנו, נקבל פלט שנראה כמו זה, עם הערכה של pi כשורה האחרונה של הפלט:
Output18
10
7
13
10
3.141592653589793
ההצהרת import
מאפשרת לך לייבא מודול או מודולים נוספים לתוך התוכנית שלך בפייתון, מאפשרת לך להשתמש בהגדרות שנבנו באותם מודולים.
שימוש ב־from
… import
להתייחס לפריטים ממודול בתוך המרחב השמות של התוכנית שלך, אתה יכול להשתמש בהצהרת from
… import
. כאשר אתה מייבא מודולים בדרך זו, אתה יכול להתייחס לפונקציות לפי שמם במקום דרך ההסימון בנקודה
בבנייה זו, אתה יכול לציין אילו הגדרות להפניה ישירה.
בתוכניות אחרות, תוכל לראות את ההצהרה import
מקבלת הפניות לכל המוגדר במודול על ידי שימוש בכוכבית (*
) כתו כללי, אך זה מפונה על ידי PEP 8.
בוא נבדוק תחילה ייבוא של פונקציה ספציפית, randint()
מהמודול random
:
כאן, אנו קוראים תחילה את המילה השמורה from
, אז random
למודול. לאחר מכן, אנו משתמשים במילה השמורה import
וקוראים את הפונקציה הספציפית שאנו רוצים להשתמש בה.
עכשיו, כאשר אנו מיישמים את הפונקציה הזו בתוך התוכנית שלנו, כבר לא נכתוב את הפונקציה בסימון בנקודה כמו random.randint()
אלא במקום זאת נכתוב רק randint()
:
כאשר אתה מפעיל את התוכנית, תקבל פלט דומה למה שקיבלנו קודם.
שימוש בבניית from
… import
מאפשר לנו להפנות לאיברים המוגדרים של מודול בתוך המרחב השמות של התוכנית שלנו, מאפשר לנו להימנע משימוש בסימון בנקודה.
שינוי שמות מודולים
ניתן לשנות את שמות המודולים ופונקציותיהם בתוך Python באמצעות המילה המפתחית as
.
יתכן שתרצה לשנות שם מכיוון שכבר השתמשת באותו שם למשהו אחר בתוכנית שלך, מודול אחר שייבאת משתמש גם בשם זה, או שתרצה לקצר שם ארוך שאתה משתמש בו הרבה.
הבניית ההצהרה הזו נראית כך:
בואו נשנה את שם המודול math
בקובץ התוכנית שלנו my_math.py
. נשנה את שם המודול math
ל-m
כדי לקצר אותו. התוכנית שונתה שלנו תראה כך:
בתוך התוכנית, אנו מתייחסים כעת לקבוע pi
כ-m.pi
במקום math.pi
.
עבור חלק מהמודולים, זה נפוץ להשתמש בכינויים. תיעוד המודול matplotlib.pyplot
מזמין לשימוש ב-plt
ככינוי:
זה מאפשר למתכנתים להוסיף את המילה הקצרה יותר plt
לכל אחת מהפונקציות הזמינות במודול, כמו plt.show()
. ניתן לראות את ההצהרה על כינוי זה בשימוש בתוך "מדריך לאיך לערוך נתונים ב-Python 3 באמצעות matplotlib
."
מסקנה
כאשר אנו מייבאים מודולים אנו מסוגלים לקרוא לפונקציות שאינן חלק מהשפה Python בצורה מובנית. חלק מהמודולים מותקנים כחלק מההתקנה של Python, וחלק מהם אנו מתקינים דרך pip
.
בשימוש במודולים אנו מאפשרים לתוכניות שלנו להיות יותר עמידות וחזקות מאחר ואנו מנצלים קוד קיים. ניתן גם ליצור מודולים משלנו לשימוש פנימי ולשימוש של מתכנתים אחרים בתוכניות עתידיות.
Source:
https://www.digitalocean.com/community/tutorials/how-to-import-modules-in-python-3