Whatsup - לינוקס, תוכנה חופשית וקוד פתוח בעברית

תיכנות בלינוקס - שימוש ב-Lambda במקום def לפונקציה בפייתון?

COM64 - 14/04/2021 - 11:38
נושא ההודעה: שימוש ב-Lambda במקום def לפונקציה בפייתון?
מנסה להבין מה הסיבות להשתמש ב-lambda במקום להגדיר פונקציה באופן הרגיל.

תודה!
Anonymous - 14/04/2021 - 12:13
נושא ההודעה:
לתפיסתי הלא מקצועית, שימוש בלמבדה הוא עיצובי,
למה לכתוב בשבע שורות משהוא שכותבים בשורה אחת.

נקודה נוספת וזה גם בשפות אחרות (c++) אם אתה מעביר פונקציה בתור פרמטר, והפונקציה קצרה, אז למה להגדיר אותה בעוד מקום..





קוד:

>>> map(lambda num: num ** 2, [1,2,3])
[1, 4, 9]
>>>

Anonymous - 14/04/2021 - 21:07
נושא ההודעה:
פונקציית למבדא בעצם היא פונקציה אנונימית שעושה משהו אחד פשוט מאוד לרוב בשורה אחת.

למשל אם אני רוצה לממש callback כלשהו בצורה שהיא inline יהיה קל לממש את זה ב lambda במידה והקוד הוא קצר מאוד.


קוד:

sum = lambda old, new : old + new

result = 0

for x in range(1, 10):
    result = sum(result, x)


כמובן ש sum קיים כבר, אבל סתם להדגמה.

מתי להשתמש? כאשר צריך "פונקציה" פשוטה מאוד ש def מרגיש גדול מידי למשל.
כל הזמנים הם GMT + 2 שעות