תחי ישראל - אין לנו ארץ אחרת

תחי ישראל -אין לנו ארץ אחרת

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

מחבר:
בתאריך:

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

את תיקיית הפרויקט נחלק לשני קבצים: הקובץ main.py שלתוכו נייבא את הקובץ toy_module.py.

בתוך הקובץ toy_module.py נכתוב:

print('Toy module says hello...')

נכתוב בתוך main.py את הקוד הבא שמייבא את toy_module:

import toy_module

נריץ את הסקריפט main.py, ונקבל את ההודעה:

Toy module says hello…

שאותה יבאנו מקובץ המודול.

אפשר להשתמש בשם ידידותי למודול, לדוגמה את toy_module אפשר לקצר ל-tm:

import toy_module as tm

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

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

נוסיף למודול toy_module קוד הכולל פונקציה ומשתנה:

str1 = 'Str1 at your service...'
 
def convert_tuple_to_dictionary(tpl):
    '''convert tuple to dictionary'''
    dict = {}
 
    for item in tpl:
        for key, val in tpl:
           dict[key] = val
 
    return dict
  • המשתנה str1 מכיל מחרוזת עם הודעת בדיקה.
  • הפונקציה convert_tuple_to_dictionary ממירה טאפלים למילונים.

בתוך הקובץ main.py, נייבא את הפונקציה convert_tuple_to_dictionary מתוך המודול, ונפעיל אותה על רשימת טאפלים:

# import function from the module
from toy_module import convert_tuple_to_dictionary
 
# list of tuples
cars = [('BMW', 310000), ('Ferrari', 500000), ('Tesla', 180000)]
 
# use the imported function
dict = convert_tuple_to_dictionary(cars)
 
print(dict)

התוצאה היא מילון:

{'BMW': 310000, 'Ferrari': 500000, 'Tesla': 180000}

ניתן להחליף את שם הפונקציה לשם ידידותי:

# import function from the module
from toy_module import convert_tuple_to_dictionary as converter
  • נשתמש במילה השמורה as כדי לתת שמות ידידותיים למודולים והפונקציות שאנו מייבאים.

נשתמש בשמה החדש של הפונקציה:

# list of tuples
cars = [('BMW', 310000), ('Ferrari', 500000), ('Tesla', 180000)]
 
# use the imported function
dict = converter(cars)
 
print(dict)

כפי שניתן לייבא פונקציות, אפשר לייבא משתנים. נייבא את המשתנה str1 מהמודול:

# import function from the module
from toy_module import convert_tuple_to_dictionary as converter, str1
  • כשמייבאים מספר משתנים ופונקציות מאותו המודול נהוג להפריד את שמותיהם באמצעות פסיקים.

נדפיס את המשתנה והפונקציה אותם ייבאנו:

# list of tuples
cars = [('BMW', 310000), ('Ferrari', 500000), ('Tesla', 180000)]
 
# use the imported function
dict = converter(cars)
 
print(dict)
 
print(str1)
{'BMW': 310000, 'Ferrari': 500000, 'Tesla': 180000}

Str1 at your service...

 

הספרייה הסטנדרטית של פייתון

ניתן לייבא מודולים שכתבו מתכנתים אחרים שיכולים לחסוך לנו המון עבודה. לדוגמה, פייתון מגיע עם ספרייה סטנדרטית שמציעה מגוון עצום של פונקציות שימושיות שאותם ניתן לסקור בקישור: https://docs.python.org/3/library.

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

import math

מה הערך של פאי?

print(math.pi)

כמה זה 3 בריבוע?

math.pow(3, 2)

איך מוצאים את המתודות והתכונות השייכות למודל? הדרך הכי פשוטה היא לבקש עזרה ובפייתון עושים את זה באמצעות הפעלת הפונקציה help() על האובייקט:

help(math)
Help on built-in module math:

NAME
    math

DESCRIPTION
    This module provides access to the mathematical functions
    defined by the C standard.

FUNCTIONS
    acos(x, /)
        Return the arc cosine (measured in radians) of x.
    
    acosh(x, /)
        Return the inverse hyperbolic cosine of x.
    
    asin(x, /)
        Return the arc sine (measured in radians) of x.
...
DATA
    e = 2.718281828459045
    inf = inf
    nan = nan
    pi = 3.141592653589793
    tau = 6.28318530717958

 

ספריות נוספות של פייתון

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

לכל המדריכים בסדרה ללימוד פייתון

 

אהבתם? לא אהבתם? דרגו!

0 הצבעות, ממוצע 0 מתוך 5 כוכבים

 

 

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

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

שימו לב! הסקריפטים במדריכים מיועדים למטרות לימוד בלבד. כשאתם עובדים על הפרויקטים שלכם אתם צריכים להשתמש בספריות וסביבות פיתוח מוכחות, מהירות ובטוחות.

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

השימוש שלך באתר מהווה ראייה להסכמתך עם הכללים והתקנות שנוסחו בהסכם תנאי השימוש.

הוסף תגובה חדשה

 

 

ענה על השאלה הפשוטה הבאה כתנאי להוספת תגובה:

דג למים הוא כמו ציפור ל...?

 

תמונת המגיב

אליחי בתאריך: 14.12.2020

תודה רבה על כל ההשקעה זה מדהים ומועיל ממש

תמונת המגיב

עדי בתאריך: 19.01.2022

עבודה יפה, ישר כוחך!! אחרי שאני מדרגת את הנאתי מהאתר(בכוכבים הצהובים)אי אפשר לשנות, וזה חבל כי לעיתים נלחץ לי בטעות.

תמונת המגיב

עדי בתאריך: 26.09.2023

כשאני מנסה לייבא את המודול למה זה נותן לי את השגיאה: ModuleNotFoundError: No module named 'adi_math'?

תמונת המגיב

שושנה בתאריך: 14.11.2024

תודה רבה על המדריך המעולה!!