ביטויי למבדה
פייתון תומכת בתחביר מיוחד שמאפשר להגדיר פונקציות בנות שורה
אחת "בתנועה". המבנה, השאול משפת lisp נקרא פונקציית lambda, וניתן להשתמש בו בכל מקום בו נדרשת
פונקציה.
>>> def
f(x): ...
return
x*2 ... >>>
f(3) 6 >>> g
= lambda
x: x*2
>>>
g(3) 6 >>>
(lambda
x: x*2)(3)
6
העבירו את העכבר על שורות
הקוד המסומנות כדי לקבל הסברים
זהו ביטוי למבדה המשיג תוצאה זהה לזו המתקבלת על ידי
הפונקציה שמעליו.
שימ/י לב לתחביר המקוצר: אין
סוגריים סביב רשימת הארגומנטים, וכן מילת המפתח return חסרה (הביטוי
כולו מחזיר ערך בסופו של דבר). בנוסף, לפונקציה אין שם, כשלעצמה.
ניתן להציב לבצע לה השמה לתוך משתנה, ובכך לתת תה
שם.
בכל אופן, אפשר להשתמש בפונקצית למבדה גם מבלי לבצע לה השמה
לתוך משתנה.
בהכללה, פונקצית למבדה היא פונקציה המקבלת כל מספר של
ארגומנטים, כולל ארגומנטים אופציונליים, ומחזירה ערך יחיד. ביטוי למבדה
אינו יכול להכיל פקודות מורכבות או יותר מביטוי
יחיד.
ביטויי למבדה הם אופציונליים. בשפת פייתון אין הכרח להשתמש בהם
– זה עניין של סגנון. כדאי להשתמש בהם במקרה שנדרשת פונקציה בת שורה
אחת שאין צורך למחזר אותה, אם לא רוצים "ללכלך" את הקוד בהרבה פונקציות
בנות שורה אחת.
|