כיצד לייבא מודולים ב־Python 3

הקדמה

שפת התכנות פייתון מגיעה עם מגוון פונקציות מובנות. בתוכן נמנים מספר פונקציות נפוצות, כוללות:

  • 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 בשורת הפקודה שלכם כך:

  1. python

מתוך מפעיל ה-Python תוכלו להפעיל את הפקודה import כדי לוודא שהמודול הנתון מוכן לשימוש, כך:

  1. import math

מכיוון ש-math הוא מודול מובנה, מפעיל ה-Python שלכם צריך להשלים את המשימה ללא משוב, ולחזור לדפנה. זה אומר שאין צורך לעשות כלום כדי להתחיל להשתמש במודול math.

בואו נריץ את הפקודה import עם מודול שאולי אין לכם מותקן, כמו ספריית השרטוטים דו-ממדית matplotlib:

  1. import matplotlib

אם matplotlib אינו מותקן, תקבלו שגיאה כזו:

Output
ImportError: No module named 'matplotlib'

ניתן להשבית את מפעיל ה-Python עם CTRL + D ולאחר מכן להתקין את matplotlib באמצעות pip.

לאחר מכן, נוכל להשתמש ב-pip כדי להתקין את מודול matplotlib:

  1. pip install matplotlib

כאשר הוא מותקן, תוכלו לייבא את matplotlib במפעיל ה-Python באמצעות import matplotlib, והוא יושלם ללא שגיאות.

ייבוא מודולים

כדי להשתמש בפונקציות במודול, עליכם לייבא את המודול באמצעות הצהרת import.

import הצהרה עשויה ממילת המפתח import יחד עם שם המודול.

בקובץ פייתון, זה יידרש להוגדר בראש הקוד, מתחת לשורות ה- shebang או ההערות הכלליות.

לכן, בקובץ התכנית הפייתונית my_rand_int.py נייבא את המודול random כדי ליצור מספרים אקראיים בדרך הבאה:

my_rand_int.py
import random

כאשר אנו מייבאים מודול, אנו מפעילים אותו זמין עבורנו בתוך התכנית הנוכחית שלנו כמרחב שמות נפרד. זה אומר שנצטרך להתייחס לפונקציה בתור רישום נקודה, כמו כן: [module].[function].

במעשה, עם הדוגמה של המודול random, זה עשוי להיראות כמו פונקציה כזו:

  • random.randint() אשר קוראת לפונקציה כדי להחזיר מספר שלם אקראי, או
  • random.randrange() אשר קוראת לפונקציה כדי להחזיר איבר אקראי מטווח מסוים.

בואו ניצור לולאת for כדי להראות כיצד נקרא לפונקציה של המודול random בתוך התכנית שלנו my_rand_int.py:

my_rand_int.py
import random


for i in range(10):
    print(random.randint(1, 25))

התכנית הקטנה הזו רושמת את המודול random בשורה הראשונה, ואז עוברת לתוך לולאת for שתעבוד עם 10 אלמנטים. בתוך הלולאה, התוכנית תדפיס מספר שלם אקראי בתחום של 1 עד 25 (כולל). המספרים 1 ו־25 מועברים ל־random.randint() כפרמטרים שלו.

כאשר אנו מפעילים את התוכנית עם python my_rand_int.py, נקבל 10 מספרים אקראיים כפלט. מכיוון שאלו מספרים אקראיים, כנראה תקבלו מספרים שונים בכל פעם שתריצו את התוכנית, אך הם יצורו משהו דומה לזה:

Output
6 9 1 14 3 22 10 1 15 9

המספרים לא צריכים לעבור מתחת ל־1 או למעלה מ־25.

אם ברצונך להשתמש בפונקציות מיותר ממודול אחד, תוכל לעשות זאת על ידי הוספת מספר רב של הצהרות import:

my_rand_int.py
import random
import math

עשוי להיראות תוכניות שמייבאות מספר מודולים עם פסיקים המפרידים ביניהם — כמו import random, math — אך זה לא עומד בהנחיות הסגנון של PEP 8.

כדי להשתמש במודול הנוסף שלנו, נוכל להוסיף את הקבוע pi מתוך math לתוכנית שלנו, ולהפחית את מספר המספרים האקראיים המודפסים:

my_rand_int.py
import random
import math


for i in range(5):
    print(random.randint(1, 25))

print(math.pi)

עכשיו, כאשר אנו מפעילים את התוכנית שלנו, נקבל פלט שנראה כמו זה, עם הערכה של pi כשורה האחרונה של הפלט:

Output
18 10 7 13 10 3.141592653589793

ההצהרת import מאפשרת לך לייבא מודול או מודולים נוספים לתוך התוכנית שלך בפייתון, מאפשרת לך להשתמש בהגדרות שנבנו באותם מודולים.

שימוש ב־fromimport

להתייחס לפריטים ממודול בתוך המרחב השמות של התוכנית שלך, אתה יכול להשתמש בהצהרת fromimport. כאשר אתה מייבא מודולים בדרך זו, אתה יכול להתייחס לפונקציות לפי שמם במקום דרך ההסימון בנקודה

בבנייה זו, אתה יכול לציין אילו הגדרות להפניה ישירה.

בתוכניות אחרות, תוכל לראות את ההצהרה import מקבלת הפניות לכל המוגדר במודול על ידי שימוש בכוכבית (*) כתו כללי, אך זה מפונה על ידי PEP 8.

בוא נבדוק תחילה ייבוא של פונקציה ספציפית, randint() מהמודול random:

my_rand_int.py
from random import randint

כאן, אנו קוראים תחילה את המילה השמורה from, אז random למודול. לאחר מכן, אנו משתמשים במילה השמורה import וקוראים את הפונקציה הספציפית שאנו רוצים להשתמש בה.

עכשיו, כאשר אנו מיישמים את הפונקציה הזו בתוך התוכנית שלנו, כבר לא נכתוב את הפונקציה בסימון בנקודה כמו random.randint() אלא במקום זאת נכתוב רק randint():

my_rand_int.py
from random import randint


for i in range(10):
    print(randint(1, 25))

כאשר אתה מפעיל את התוכנית, תקבל פלט דומה למה שקיבלנו קודם.

שימוש בבניית fromimport מאפשר לנו להפנות לאיברים המוגדרים של מודול בתוך המרחב השמות של התוכנית שלנו, מאפשר לנו להימנע משימוש בסימון בנקודה.

שינוי שמות מודולים

ניתן לשנות את שמות המודולים ופונקציותיהם בתוך Python באמצעות המילה המפתחית as.

יתכן שתרצה לשנות שם מכיוון שכבר השתמשת באותו שם למשהו אחר בתוכנית שלך, מודול אחר שייבאת משתמש גם בשם זה, או שתרצה לקצר שם ארוך שאתה משתמש בו הרבה.

הבניית ההצהרה הזו נראית כך:

import [module] as [another_name]

בואו נשנה את שם המודול math בקובץ התוכנית שלנו my_math.py. נשנה את שם המודול math ל-m כדי לקצר אותו. התוכנית שונתה שלנו תראה כך:

my_math.py
import math as m


print(m.pi)
print(m.e)

בתוך התוכנית, אנו מתייחסים כעת לקבוע pi כ-m.pi במקום math.pi.

עבור חלק מהמודולים, זה נפוץ להשתמש בכינויים. תיעוד המודול matplotlib.pyplot מזמין לשימוש ב-plt ככינוי:

import matplotlib.pyplot as plt

זה מאפשר למתכנתים להוסיף את המילה הקצרה יותר plt לכל אחת מהפונקציות הזמינות במודול, כמו plt.show(). ניתן לראות את ההצהרה על כינוי זה בשימוש בתוך "מדריך לאיך לערוך נתונים ב-Python 3 באמצעות matplotlib."

מסקנה

כאשר אנו מייבאים מודולים אנו מסוגלים לקרוא לפונקציות שאינן חלק מהשפה Python בצורה מובנית. חלק מהמודולים מותקנים כחלק מההתקנה של Python, וחלק מהם אנו מתקינים דרך pip.

בשימוש במודולים אנו מאפשרים לתוכניות שלנו להיות יותר עמידות וחזקות מאחר ואנו מנצלים קוד קיים. ניתן גם ליצור מודולים משלנו לשימוש פנימי ולשימוש של מתכנתים אחרים בתוכניות עתידיות.

Source:
https://www.digitalocean.com/community/tutorials/how-to-import-modules-in-python-3