פונקציית ה-main של Python

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

הפונקציה הראשית של פייתון

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

print("Hello")

print("__name__ value: ", __name__)


def main():
    print("python main function")


if __name__ == '__main__':
    main()
  • כאשר תוכנית פייתון מופעלת, מפרש הפייתון מתחיל לבצע קוד בתוך התוכנית. הוא גם מגדיר ערכים משתנים מראש, ואחד מהם הוא __name__ שערכו מוגדר כ־__main__.

  • עבור פונקציית הראשית של פייתון, עלינו להגדיר פונקציה ואז להשתמש בתנאי if __name__ == '__main__' כדי לבצע את הפונקציה הזו.

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

  • פייתון מספקת לנו גמישות לשמור על כל שם עבור השיטה הראשית, אך זה מומלץ לקרוא לה main() שיטה. הקוד למטה הוא אידיאלי, אף על פי שלא מומלץ.

    def main1():
        print("פונקציית הראשית של פייתון")
    
    
    if __name__ == '__main__':
        main1()
    

התמונה למטה מציגה את הפלט כאשר python_main_function.py מופעל כקובץ מקור.

פונקציית ראשית בפייתון כמודול

עכשיו בואו נשתמש בקובץ מקור פייתון הנ"ל כמודול ונייבא אותו לתוך תוכנית אחרת. python_import.py

import python_main_function

print("Done")

עכשיו כאשר התוכנית הנ"ל מופעלת, הפלט למטה מיוצר.

Hello
__name__ value:  python_main_function
Done

שימו לב ששתי השורות הראשונות מודפסות מתוך קובץ המקור python_main_function.py. שימו לב לערך של __name__ שונה ולכן השיטה הראשית לא מופעלת. שימו לב כי פקודות התוכנית בפייתון מופעלות שורה אחר שורה, ולכן חשוב להגדיר את השיטה main() תחילה לפני התנאי if כדי להפעיל את השיטה הראשית. אחרת תקבלו שגיאה כמו NameError: name 'main' is not defined. זהו כל מה שצריך לדעת על פונקציית הראשית בפייתון. מקור: מסמכי פייתון

Source:
https://www.digitalocean.com/community/tutorials/python-main-function