@שרה-רחל
א.
תיקון:
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__)
ועכשיו אבדוק:

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