May 15, 2021

פייתון 14 - מודולים


פרק קודם:

פייתון 13 - שגיאות

מה נלמד

  • מה מגדיר מודול
  • מה ניתן לייבא ממודול
  • משתני מערכת בפייתון
  • המשתנה name

מודולים - Modules

למדנו שניתן להריץ קוד בתוך קובץ, הקבצים האלו בעלי הסיומת “.py”.
קבצי פייתון יכולים להכיל הצהרות של פונקציות.
הקובץ הזה הוא בעצם מודול.

למשל:
shapeMath.py

1
2
def RectangleArea(a,b):
return a*b

main.py

1
2
3
4
import shapeMath

area = shapeMath.RectangleArea(5,5)
print(f"Area is {area}")

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

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

המודול הראשי שואל: “מי יכול לחשב לי את השטח של המלבן?”
המודול השני עונה “לי יש פונקציית חישוב”
המודול הראשי מייבא ומשתמש בפונקציות.

ייבוא חלקי

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

1
2
3
4
from shapeMath import RectangleArea

area = RectangleArea(5,5)
print(f"Area is {area}")

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

בלי:

1
2
3
import shapeMath

area = shapeMath.RectangleArea(5,5)

עם:

1
2
3
from shapeMath import RectangleArea

area = RectangleArea(5,5)

שימוש נכון במודולים

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

המשתנה name

1
2
3
4
if __name__ == "__main__": 
print ("File is running")
else:
print("File is imported")

כשמריצים את הקובץ הראשי:

1
2
3
PS C:\a> python main.py
File is imported
Area is 25

כשמריצים את הקובץ המשני:

1
2
3
PS C:\a> python shapeMath.py
File is running
PS C:\a>

המשתנה הזה בעצם אומר איזה קובץ רץ ואם הקובץ הראשי רץ הוא מקבל את השם

1
__main__

כשיש לנו סקריפט שיכול לרוץ או להיות משומש כמודול - ניתן לבדוק בעזרת המשתנה הזה איזה קובץ רץ.

תרגיל

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

  2. להלן רשימה של פוקנציות, תאגדו אותם למודולים ותנו שם למודולים האלו:

  • CalcArea
  • CalcAngle
  • GetMouse
  • SaveFile
  • LoadFile
  • GetKeyboard
  • RectangleIntersects



בפרק הבא נלמד על תבניות רגקס - חיפוש בתוך טקסט.

פייתון 15 - רגקסים

על הפוסט

הפוסט נכתב על ידי Ilya, רישיון על ידי CC BY-NC-ND 4.0.

שתפו את הפוסט

Email Facebook Linkedin Print

קנו לי קפה

#Software#Python