הpath של תיקיית ה wit בתור משתנה גלובלי

יצא שבהרבה פונקציות הייתי צריך את הpath של תיקיית הwit שנמצאת בcwd.

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

השאלה היא אם זה נכון לכל סוג משתנה? והאם יש כמות חזרות של קוד שכבר נחשבת למוגזמת והיא מצדיקה שימוש במשתנה גלובלי?

קוד לדוגמה:

def a():
wit_path = find_main_dir() / ‘.wit’

def b():
wit_path = find_cwd() / ‘.wit’
do_something(wit_path)

def c():
wit_path = find_cwd() / ‘.wit’
do_something(wit_path)

def d():
wit_path = find_cwd() / ‘.wit’
do_something(wit_path)

לעומת:

def a():
global wit_path = find_main_dir() / ‘.wit’

def b():
do_something(wit_path)

def c():
do_something(wit_path)

def d():
do_something(wit_path)

אם יש קטע קוד שחוזר על עצמו אני אישית אעדיף להוציא אותו לפונקציה נפרדת ולקרוא לו מפונקציה אחרת.
אני לא יודע מה הbest practice במקרה הנ"ל

בגדול אני מסכים איתך אבל במקרה הנל מדובר בשורה אחת וקריאה לפונקציה היא גם שורה אחת. אז זה לא פותר את הבעיה.
אבל תודה על המענה!

לייק 1

היי,

אין בעיה להגדיר משתנה גלובאלי כל עוד הוא לקריאה בלבד וערכו לא משתנה במהלך הריצה.
הפחד ממשתנים גלובאליים נובע מזה ששינוי ה־state שלהם במהלך התוכנה גורם לבאגים שקשה לעקוב אחריהם, ועשוי ליצור race conditions ב־multithreading.

4 לייקים