דילוג לתוכן
  • דף הבית
  • קטגוריות
  • פוסטים אחרונים
  • משתמשים
  • חיפוש
  • חוקי הפורום
כיווץ
תחומים

תחומים - פורום חרדי מקצועי

💡 רוצה לזכור קריאת שמע בזמן? לחץ כאן!
  1. דף הבית
  2. תכנות
  3. python

python

מתוזמן נעוץ נעול הועבר תכנות
3 פוסטים 3 כותבים 185 צפיות 3 עוקבים
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
תגובה
  • תגובה כנושא
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • ש מנותק
    ש מנותק
    שרה רחל
    כתב ב נערך לאחרונה על ידי
    #1
    if __name__=__main__
    

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

    תודה

    קומפיונטק חגיח 2 תגובות תגובה אחרונה
    0
    • ש שרה רחל
      if __name__=__main__
      

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

      תודה

      קומפיונטק מנותק
      קומפיונטק מנותק
      קומפיונט
      כתב ב נערך לאחרונה על ידי
      #2

      @שרה-רחל

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

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

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

      תגובה 1 תגובה אחרונה
      5
      • ש שרה רחל
        if __name__=__main__
        

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

        תודה

        חגיח מנותק
        חגיח מנותק
        חגי
        כתב ב נערך לאחרונה על ידי
        #3

        @שרה-רחל
        א.
        תיקון:

        if __name__=='__main__':
            print("hello world")
        

        ב.
        דוגמה פשוטה לדבר:
        נניח שmain.py נמצא בתוך חבילה ששמה example
        9dfb776b-9458-447c-ab0b-bafb5ac6f8fe-image.png
        main.py:

        def example(*args):
            print(*args)
        
        example('hello world'')
        

        עכשיו כשאני רוצה לייבא את הפונקציה example בקוד אחר אני עושה ככה:
        917aa3f1-85ab-45e6-8cd2-3bab59cdfdd7-image.png

        אוי.. אני רק רציתי את הפונקציה, זה מאוד לא נוח שעכשיו זה גם מריץ לי את הפונקציה example('hello world') אבל אני כן הייתי רוצה לייצא את החבילה שלי בצורה כזאת שיהיה אפשר להריץ אותה בצורה עצמאית, גם לא בשביל לייצא את הפונקציות.

        סתם מעניין אותי לדעת, מה זה __name__?

        אני אשנה את main.py

        def example(*args):
            print(*args)
        
        example(__name__)
        

        עכשיו כשאני אייבא את הפונקציה, זה ידפיס לי את __name__
        5be115c3-0392-4d95-96c1-d0eb451a83f9-image.png
        אהה.. זה השם של החבילה והמודול שלי, אבל מה יקרה אם אני אריץ את הקובץ ישירות עם פייתון?
        74e8bf0d-82c8-4a9b-a81d-54e38cf3d06a-image.png

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

        def example(*args):
            print(*args)
        
        if __name__ == '__main__':
            example(__name__)
        

        ועכשיו אבדוק:
        611123ed-b802-47c6-9f38-2e53ebd17ae6-image.png

        אהה יופי, בדיוק מה שרציתי.

        תגובה 1 תגובה אחרונה
        8
        תגובה
        • תגובה כנושא
        התחברו כדי לפרסם תגובה
        • מהישן לחדש
        • מהחדש לישן
        • הכי הרבה הצבעות


        בא תתחבר לדף היומי!
        • התחברות

        • אין לך חשבון עדיין? הרשמה

        • התחברו או הירשמו כדי לחפש.
        • פוסט ראשון
          פוסט אחרון
        0
        • דף הבית
        • קטגוריות
        • פוסטים אחרונים
        • משתמשים
        • חיפוש
        • חוקי הפורום