@שרה-רחל
א.
תיקון:
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
אהה יופי, בדיוק מה שרציתי.