הגדרת משתנה בתוך פונקציה

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

# פונקציה עם משתנה
def stam(my_list):
    new_list = x + 1 for x in my_list
    return new_list

# פונקציה ללא משתנה
def stam(my_list):
    return  x + 1 for x in my_list

דעתי האישית (אני לא מהתחום) היא שככמה שהביטוי נהיה מורכב יותר וארוך יותר עדיף להשים אותו למשתנה
ואז להחזיר אותו. כי שורה ארוכה בreturn יכולה לפעמים לגרום לזה להיות ממש לא ברור. אבל אם זה פעולות יחסית קצרות אין סיבה שלא.

נראה בשמקרה הזה לא כזה נורא להחזיר את זה בreturn אבל הכל פה קצר אם הלולאה הזו תהיה עם שמות משתנים
שהם לא X זה כבר יכול להראות מסורבל.

לייק 1

התחביר השני שלך חוקי?
כאילו שניהם, אם אתה רוצה list comprehension צריך לשים סוגריים מרובעים, לא?

נראה לי השאלה פה היא באופן כללי לא על תקינות הקוד הזה :slight_smile:

סתם קשקשתי דוגמא בלי לשים לב לתחביר :slight_smile:

לייק 1

זה בעיקר עניין של טעם וריח.

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

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

לייק 1