יבוא קבצים ומודולים
כשאנחנו עובדים על משימת התכנות שלנו מהר מאוד נגלה שאנחנו צריכים להשתמש ביותר מקובץ אחד משלוש סיבות עיקריות: הקוד שאנחנו כותבים הופך לארוך מדי וקשה לנו לנהל אותו, צוות של מתכנתים עובדים במקביל על אותו פרויקט או שאנו רוצים להפחית את מידת המאמץ על ידי יבוא פונקציות שכתבו מתכנתים אחרים, וארוזות בתוך מודולים. במדריך זה נלמד כיצד לייבא קבצים שלנו ומודולים שכתבה קהילת הפייתון.
את תיקיית הפרויקט נחלק לשני קבצים: הקובץ 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
בתוך הקובץ 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 כוכבים
המדריכים באתר עוסקים בנושאי תכנות ופיתוח אישי. הקוד שמוצג משמש להדגמה ולצרכי לימוד. התוכן והקוד המוצגים באתר נבדקו בקפידה ונמצאו תקינים. אבל ייתכן ששימוש במערכות שונות, דוגמת דפדפן או מערכת הפעלה שונה ולאור השינויים הטכנולוגיים התכופים בעולם שבו אנו חיים יגרום לתוצאות שונות מהמצופה. בכל מקרה, אין בעל האתר נושא באחריות לכל שיבוש או שימוש לא אחראי בתכנים הלימודיים באתר.
למרות האמור לעיל, ומתוך רצון טוב, אם נתקלת בקשיים ביישום הקוד באתר מפאת מה שנראה לך כשגיאה או כחוסר עקביות נא להשאיר תגובה עם פירוט הבעיה באזור התגובות בתחתית המדריכים. זה יכול לעזור למשתמשים אחרים שנתקלו באותה בעיה ואם אני רואה שהבעיה עקרונית אני עשוי לערוך התאמה במדריך או להסיר אותו כדי להימנע מהטעיית הציבור.
שימו לב! הסקריפטים במדריכים מיועדים למטרות לימוד בלבד. כשאתם עובדים על הפרויקטים שלכם אתם צריכים להשתמש בספריות וסביבות פיתוח מוכחות, מהירות ובטוחות.
המשתמש באתר צריך להיות מודע לכך שאם וכאשר הוא מפתח קוד בשביל פרויקט הוא חייב לשים לב ולהשתמש בסביבת הפיתוח המתאימה ביותר, הבטוחה ביותר, היעילה ביותר וכמובן שהוא צריך לבדוק את הקוד בהיבטים של יעילות ואבטחה. מי אמר שלהיות מפתח זו עבודה קלה ?
השימוש שלך באתר מהווה ראייה להסכמתך עם הכללים והתקנות שנוסחו בהסכם תנאי השימוש.