تابع lambda یک تابع ناشناس کوچک است.
یک تابع lambda می تواند هر تعداد آرگومان را بگیرد ، اما فقط می تواند یک عبارت داشته باشد.
نحو
lambda arguments : 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 استفاده کنید.