python
-
if __name__=__main__מה הצורך בשורה זו?
מבינה שזה בודק האם זה הקובץ הנוכחי או קריאה מקובץ מיובא
אבל איזו בעיה הוא פותר?תודה
הרעיון בגדול זה שאם מפעילים ישירות את הסקריפט זה מריץ את מה שבתוך התנאי, אבל אם עושים לו import מסקריפט אחר אז הוא לא מריץ את זה.
למה זה שימושי?
נניח שיש סקריפט שמכיל כמה פונקציות ומבצע פעולה מסויימת כשמריצים אותו, עכשיו אם משהו ירצה להשתמש רק בפונקציות של הסקריפט מבלי לבצע את הפעולה שהסקריפט עושה, אז כשהוא יעשה import כל הסקריפט עצמו ירוץ, דבר שהוא לא רוצה.לכן בדרך כלל מכניסים את הפוקציה הראשית לתוך התנאי הזה, כך שהיא תתבצע רק אם הפעילו את הסקריפט עצמו ולא אם עשו לו import מסקריפט אחר.
-
if __name__=__main__מה הצורך בשורה זו?
מבינה שזה בודק האם זה הקובץ הנוכחי או קריאה מקובץ מיובא
אבל איזו בעיה הוא פותר?תודה
@שרה-רחל
א.
תיקון:if __name__=='__main__': print("hello world")ב.
דוגמה פשוטה לדבר:
נניח שmain.py נמצא בתוך חבילה ששמה example

main.py:def example(*args): print(*args) example('hello world'')עכשיו כשאני רוצה לייבא את הפונקציה
exampleבקוד אחר אני עושה ככה:

אוי.. אני רק רציתי את הפונקציה, זה מאוד לא נוח שעכשיו זה גם מריץ לי את הפונקציה
example('hello world')אבל אני כן הייתי רוצה לייצא את החבילה שלי בצורה כזאת שיהיה אפשר להריץ אותה בצורה עצמאית, גם לא בשביל לייצא את הפונקציות.סתם מעניין אותי לדעת, מה זה
__name__?אני אשנה את main.py
def example(*args): print(*args) example(__name__)עכשיו כשאני אייבא את הפונקציה, זה ידפיס לי את
__name__

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

אם כך זה פשוט
אני רק אבדוק שאני לא מריץ את החבילה ישירות, אני כבר יודע איך עושים את זה:def example(*args): print(*args) if __name__ == '__main__': example(__name__)ועכשיו אבדוק:

אהה יופי, בדיוק מה שרציתי.
שלום! נראה שהשיחה הזו מעניינת אותך, אבל עדיין אין לך חשבון.
נמאס לכם לגלול בין אותם הפוסטים בכל ביקור? כשנרשמים לחשבון, תמיד תחזרו בדיוק למקום שבו הייתם קודם, ותוכלו לבחור לקבל התראות על תגובות חדשות (בין אם במייל, ובין אם בהתראת פוש). תוכלו גם לשמור סימניות ולפרגן ב-upvote לפוסטים כדי להביע הערכה לחברי קהילה אחרים.
בעזרת התרומה שלך, הפוסט הזה יכול להיות אפילו טוב יותר 💗
הרשמה התחברות