توابع لامبدا (Lambda Functions)
توابع لامبدا یا توابع ناشناس در پایتون به شما اجازه میدهند توابع ساده را در یک خط تعریف کنید، بدون استفاده از def. این نوع توابع معمولاً زمانی استفاده میشوند که بخواهید یک تابع کوچک و موقتی را به عنوان آرگومان به تابعی دیگر بدهید.
def my_func(f, arg):
return f(arg)
result = my_func(lambda x: 2 * x * x, 5)
print(result) # خروجی: 50
ساختار توابع لامبدا: تابع لامبدا با کلمه کلیدی lambda شروع میشود، سپس لیستی از پارامترها و بعد از آن با : یک عبارت بازگرداندهشونده نوشته میشود. برخلاف def، توابع لامبدا فقط میتوانند شامل یک عبارت باشند و اجازه استفاده از چندین دستور (statement) مانند حلقهها یا شرطهای پیچیده را ندارند.
مثال مقایسهای با تابع معمولی:
# تابع معمولی
def polynomial(x):
return x**2 + 5*x + 4
print(polynomial(-4))
# تابع لامبدا
print((lambda x: x**2 + 5*x + 4)(-4))
در هر دو مورد بالا، خروجی 0 خواهد بود. در نسخه دوم، تابع لامبدا مستقیم در جای خود تعریف و فراخوانی شده است.
ذخیره در متغیر و استفاده مشابه تابع معمولی:
double = lambda x: x * 2
print(double(7)) # خروجی: 14
نکته: این نوع از توابع کاربرد رایجی در استفاده از ساختار هایی مانند map، filter، و sorted دارند.