Lambda
Lambda یک تابع کوچک بینام است.[۱]
تابع lambda میتواند به هر تعداد آرگومان داشته باشد، اما فقط میتواند یک عبارت داشته باشد.
دستور نوشتار
lambda arguments : expression
عبارت اجرا میشود و نتیجه ارائه میشود:
مثال
یک تابع lambda که ۱۰ را به عددی که عنوان آرگومان به تابع پاس شده اضافه میکند و نتیجه را چاپ میکند:
1 x = lambda a : a + 10
2 print(x(5))
توابع lambda میتوانند هر تعداد آرگومان داشته باشند:
مثال
یک تابع lambda که آرگومان a را در آرگومان b ضرب میکند و نتیجه را چاپ میکند:
1 x = lambda a, b : a * b
2 print(x(5, 6))
مثال
یک تابع lambda که آرگومانهای a و b و c را جمع میکند و نتیجه را چاپ میکند:
1 x = lambda a, b, c : a + b + c
2 print(x(5, 6, 2))
چرا از توابع Lambda استفاده می کنیم؟
هنگامی که از lambda بعنوان تابع بی نام داخل یک تابع دیگر استفاده شود، قدرت آن بهتر نمایش داده میشود.
فرض کنیم شما تعریف تابعی دارید که یک آرگومان میگیرد، و آن آرگومان در یک عدد ناشناخته ضرب میشود:
1 def myfunc(n):
2 return lambda a : a * n
از آن تعریف برای ایجاد تابعی استفاده کنید که همیشه اعدادی که شما به آن ارسال میکنید را دو برابر میکند:
مثال
1 def myfunc(n):
2 return lambda a : a * n
3
4 mydoubler = myfunc(2)
5
6 print(mydoubler(11))
یا از همان تعریف تابع برای ایجاد تابعی استفاده کنید که همیشه اعدادی را که به آن ارسال میکنید سه برابر میکند:
مثال
1 def myfunc(n):
2 return lambda a : a * n
3
4 mytripler = myfunc(3)
5
6 print(mytripler(11))
یا از همان تعریف تابع برای ایجاد هر دوتابع در یک برنامه استفاده کنید:
مثال
1 def myfunc(n):
2 return lambda a : a * n
3
4 mydoubler = myfunc(2)
5 mytripler = myfunc(3)
6
7 print(mydoubler(11))
8 print(mytripler(11))
منابع آموزشی