Python Lambda

توابع Lambda جزو توابع کوچک بدونه نام هستند.

میتوانند هرتعداد آرگومان بگیرند اما فقط یک عبارت را اجرا می‌کنند.

syntax

lambda syntax

expression بخش قابل اجرا است که یک مقدار را برمی‌گرداند.

در مثال زیر از این تابع برای جمع کردن ورودی با عدد 10 استفاده شده است.

x = lambda a : a + 10
print(x(5))

گفتیم که توابع Lambda می‌توانند هر تعداد آرگومان بگیرند.

این تابع ورودی ها را با هم ضرب می‌کند

x = lambda a, b : a * b
print(x(5, 6))

این تابع ورودی ها را با هم جمع ی‌کند.

x = lambda a, b, c : a + b + c
print(x(5, 6, 2))

چرا باید از توابع Lambda استفاده کنیم

قدرت توابع Lambda زمانی نمایان می‌شود که درون یک تابع دیگر از تابع بدونه نام استفاه کنیم.

فکر کنید می‌خواهیم تابعی بنویسیم که یک عدد را در عددی که نمیدانیم چند است ضرب کند.

def myfunc(n):
  return lambda a : a * n

فرض کنید که قرار است تابع ما همیشه عدد دریافتی را ضرب در 2 کند.

def myfunc(n):
  return lambda a : a * n

mydoubler = myfunc(2)

print(mydoubler(11))

میتوانید از این تابع چندین بار دیگر در برنامه استفاده کنید مثلا هر عدد را ضرب در 3 کند.

def myfunc(n):
  return lambda a : a * n

mydoubler = myfunc(2)
mytripler = myfunc(3)

print(mydoubler(11))
print(mytripler(11))

 

کاربرد اصلی این توابع زمانی است که به یک تابع بدونه نام در دوره زمانی کوتاهی نیاز داشته باشیم.