متن خبر

تابع ناشناس پایتون – نحوه استفاده از توابع لامبدا

تابع ناشناس پایتون – نحوه استفاده از توابع لامبدا

اخبارتابع ناشناس پایتون – نحوه استفاده از توابع لامبدا
شناسهٔ خبر: 267040 -




خبرکاو:

شما می توانید از توابع در برنامه نویسی برای ذخیره یک قطعه کد استفاده کنید که در صورت نیاز می تواند فراخوانی شود. این از شما جلوگیری می کند که هر بار که به آن کد نیاز دارید، همان منطق را دوباره تایپ کنید.

در این مقاله، نحوه ایجاد و استفاده از توابع ناشناس در پایتون را خواهید آموخت. به آنها توابع لامبدا نیز گفته می شود.

ما با یک نمای کلی از نحوه ایجاد توابع منظم در پایتون شروع می کنیم. سپس سینتکس و کاربردهای عملی توابع ناشناس در پایتون را یاد خواهید گرفت.

همچنین برخی از تفاوت‌های بین توابع لامبدا و معمولی در پایتون و زمان استفاده از توابع لامبدا را خواهید دید.

نحوه استفاده از توابع در پایتون

وقتی چندین بار به منطق خاصی نیاز است، عملکردها از اختراع مجدد چرخ جلوگیری می کنند.

کد زیر را در نظر بگیرید:

 first_addition = 2+3 print(first_addition) # 5 second_addition = 3+5 print(second_addition) # 8

ما مجبور شدیم منطق جمع را چندین بار در متغیرهای مختلف بازسازی کنیم. تصور کنید اگر مجبور باشید این کار را صد بار انجام دهید.

با یک تابع، می توانید یک بار منطق را ایجاد کنید و هر چقدر که می خواهید دوباره از آن استفاده کنید. در اینجا یک مثال در پایتون آورده شده است:

 def add_numbers(a,b): return a + b print(add_numbers(2,3)) # 5 print(add_numbers(3,5)) # 8 print(add_numbers(5,7)) # 12

با استفاده از کلمه کلیدی def ، تابعی به نام add_numbers(a,b) ایجاد کردیم. دو پارامتر a و b نیاز دارد. تابع مجموع a و b را برمی گرداند.

پس برای چندین بار استفاده از منطق، فقط باید تابع را فراخوانی کرده و پارامترهای مختلف را برای عملیات های مختلف ارسال کنیم:

 print(add_numbers(2,3)) # 5 print(add_numbers(3,5)) # 8 print(add_numbers(5,7)) # 12

حالا بیایید نگاهی به توابع ناشناس/لامبدا در پایتون بیندازیم.

نحوه استفاده از توابع لامبدا در پایتون

یک تابع ناشناس در پایتون یک تابع بدون نام است. می توان آن را بلافاصله فراخوانی یا در یک متغیر ذخیره کرد.

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

در اینجا سینتکس ایجاد یک تابع لامبدا در پایتون آمده است:

 lambda parameter(s) : expression

سه مقدار وجود دارد که یک تابع لامبدا را همانطور که در دستور بالا مشاهده می شود تعریف می کند:

تابع lambda با استفاده از کلمه کلیدی lambda ایجاد می شود.

کلمه کلیدی با یک یا چند پارامتر دنبال می شود.

در نهایت، یک عبارت برای تابع ارائه شده است. این بخشی از کد است که اجرا می شود/برگردانده می شود.

پارامتر(ها) و عبارت با دو نقطه از هم جدا می شوند.

در اینجا یک مثال است:

 add_numbers = lambda a,b : a + b print(add_numbers(2,3)) # 5

در کد بالا، یک تابع لامبدا با دو پارامتر a و b ایجاد کردیم. تابع مجموع پارامترها را برمی گرداند.

یعنی: lambda a,b : a + b

توجه داشته باشید که تابع نامی ندارد. تابع lambda را به متغیری به نام add_numbers اختصاص دادیم تا بتوانیم به راحتی تابع را از طریق متغیر فراخوانی کنیم.

بدون اختصاص دادن یک تابع لامبدا به یک متغیر، چیزی شبیه به این خواهید داشت:

 print(lambda a,b : a + b) # <function <lambda> at 0x7f757922fb00>

کد بالا به سادگی یک شی لامبدا را در کنسول برمی گرداند.

شما می توانید بلافاصله با استفاده از پرانتز یک تابع لامبدا را فراخوانی کنید:

 (lambda a,b : a + b)(2,3)

وقتی کد بالا چاپ شد، 5 برگردانده می شود.

تفاوت بین لامبدا و توابع منظم در پایتون چیست؟

در اینجا چند تفاوت بین توابع لامبدا و توابع منظم در پایتون وجود دارد:

توابع لامبدا توابع منظم
با استفاده از کلمه کلیدی لامبدا تعریف شده است با استفاده از کلمه کلیدی def تعریف شده است
می توان در یک خط نوشت به بیش از یک خط کد نیاز دارد
بدون بیانیه بازگشت مورد نیاز است هنگام برگرداندن مقادیر باید دستور بازگشت تعریف شود
به صورت ناشناس قابل استفاده است به توابع منظم باید یک نام داده شود

زمان استفاده از تابع لامبدا در پایتون

اگرچه می‌توانید از توابع معمولی و لامبدا برای دستیابی به نتایج یکسان استفاده کنید، در اینجا برخی از دلایلی وجود دارد که چرا ممکن است یک تابع لامبدا را انتخاب کنید:

اول از همه، وقتی به تابعی نیاز دارید که فقط یک بار استفاده می شود، می توانید از یک تابع لامبدا استفاده کنید. این به ویژه هنگام کار با توابعی مانند map ، reduce ، filter مفید است. کد زیر را در نظر بگیرید:

 def double_number(n): return n + n numbers = [1, 3, 5, 7, 9] double_result = map(double_number, numbers) print(list(double_result)) # [2, 6, 10, 14, 18]

در کد بالا یک تابع منظم به نام double_number ایجاد کردیم که مقدار یک عدد را دو برابر می کند.

اگرچه این تابع به عنوان پارامتری به تابع map - map(double_number, numbers) وارد شد، قبل از استفاده باید منطق را می نوشتیم.

با توابع لامبدا، می توانید این کار را انجام دهید:

 numbers = [1, 3, 5, 7, 9] double_result = map(lambda x : x+x, numbers) print(list(double_result)) # [2, 6, 10, 14, 18]

همانطور که در بالا می بینید، ما فقط یک تابع لامبدا - lambda x : x+x - را به عنوان یک پارامتر به تابع map ارسال کردیم: map(lambda x : x+x, numbers) .

ما توانستیم با خطوط کد کمتری به همین نتیجه برسیم. نیازی به تعریف یک تابع قبل از استفاده وجود نداشت.

همچنین می توانید در مواقعی که به تابعی نیاز دارید که باید فورا فراخوانی شود، از تابع لامبدا استفاده کنید. همانطور که در مثال نقطه قبل مشاهده می کنید، ابتدا تابع منظم را قبل از استفاده از آن تعریف کردیم. توابع Lambda را می توان بلافاصله پس از ایجاد آنها فراخوانی کرد.

در نهایت، لامبدا زمانی مفید است که می خواهید از یک تابع در داخل یک تابع استفاده کنید. یا زمانی که می خواهید تابعی ایجاد کنید که تابعی را برمی گرداند.

خلاصه

در این مقاله در مورد توابع لامبدا در پایتون صحبت کردیم. توابعی بدون نام وجود دارد و می توان آنها را با یک خط کد اجرا کرد.

نحوه استفاده از توابع منظم در پایتون را با چند مثال دیدیم.

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

در آخر، ما در مورد تفاوت بین توابع لامبدا و توابع منظم در پایتون و زمان استفاده از توابع لامبدا صحبت کردیم.

کد نویسی مبارک!

برچسب‌ها

ارسال نظر




تبليغات ايهنا تبليغات ايهنا

تمامی حقوق مادی و معنوی این سایت متعلق به خبرکاو است و استفاده از مطالب با ذکر منبع بلامانع است