سینتکس (Syntax) تابع لامبدا یا بی نام
lambda arguments : expression
در Syntax بالا عبارت (expression) اجرا می شود و نتیجه بازگردانده می شود.
مثال: در این مثال مقدار 10 را به آرگومان a اضافه می کند و نتیجه را برمی گرداند.
x = lambda a : a + 10
print(x(5))
توابع Lambda می توانند هر تعداد آرگومان داشته باشند.
مثال: در این مثال آرگومان a با آرگومان b ضرب می شود و نتیجه برگردانده می شود.
x = lambda a, b : a * b
print(x(5, 6))
مثال: در این مثال سه آرگومان a و b و c با یکدیگر جمع می شوند و نتیجه برگشت داده می شود.
x = lambda a, b, c : a + b + c
print(x(5, 6, 2))
دلیل استفاده از توابع Lambda در پایتون
توابع لامبدا زمانی کارایی و قدرت بهتری دارد که از آن به صورت ناشناس درون تابع دیگری استفاده کنید.
مثال: اگر شما یک تابغ دارید که فقط یک آرگومان می گیرد و قرار است این آرگومان با یک عدد ناشناس ضرب شود، به شکل زیر از تابع بی نام استفاده کنید.
def myfunc(n):
return lambda a : a * n
حال از این تابع برای ایجاد تابعی استفاده کنید که عددی که ارسال می کنید را دو برابر کند و آن را برگرداند.
def myfunc(n):
return lambda a : a * n
mydoubler = myfunc(2)
print(mydoubler(11))
یا می توانید از همان تابع برای ایجاد تابعی استفاده کنید که عدد ارسالی را سه برابر کند و آن را برگشت دهد.
def myfunc(n):
return lambda a : a * n
mytripler = myfunc(3)
print(mytripler(11))
یا برای ایجاد هر دو تابع (دو برابر کردن، سه برابر کردن)، می توانید از یک تابع استفاده کنید.
def myfunc(n):
return lambda a : a * n
mydoubler = myfunc(2)
mytripler = myfunc(3)
print(mydoubler(11))
print(mytripler(11))
نکته: هنگامی که به یک تابع ناشناس یکبار مصرف نیاز دارید، از توابع Lambda استفاده کنید.
پس توابع لامبدا برای این استفاده می شوند که اگر نیاز به توابع ساده یک خطی داریم، در نوشتن توابع معمولی زیاده روی نکنیم.