آدرس : تهران میدان فردوسی خیابان ایرانشهر بین سمیه و طالقانی مجتمع تجاری میلاد واحد 9

پشتیبانی 24 ساعته : 02188867940 – 09927674217

برای مشاهده لیست علاقه مندی ها وارد شوید!

مشاهده محصولات فروشگاه
0

هیچ محصولی در سبد خرید نیست.

لامبدا که می توانید استفاده کنید

دسته بندی :اخبار سایت 20 فوریه 2023 علیرضا بابامرادی 239

چه زمانی باید از توابع لامبدا در کد خود استفاده کنید؟ از نظر فنی، هر
زمانی که از شما انتظار می رود یک شی تابع را ارائه کنید، می توانید از لامبدا استفاده کنید
اصطلاح. و از آنجایی که لامبداها می توانند ناشناس باشند، شما حتی این کار را نمی کنید
ابتدا باید آنها را به یک نام اختصاص دهید.
این می تواند یک میانبر مفید و “غیر بوروکراتیک” برای تعریف a ارائه دهد
عملکرد در پایتون بیشترین مورد استفاده من برای لامبدا نوشتن است
توابع کلیدی کوتاه و مختصر برای مرتب‌سازی تکرارپذیرها بر اساس یک کلید جایگزین:

tuples = [(1, ‘d’), (2, ‘b’), (4, ‘a’), (3, ‘c’)]
sorted(tuples, key=lambda x: x[1])
[(4, ‘a’), (2, ‘b’), (3, ‘c’), (1, ‘d’)]
در مثال بالا، ما لیستی از تاپل ها را بر اساس مقدار دوم مرتب می کنیم
در هر تاپل در این مورد، تابع لامبدا یک راه سریع ارائه می دهد
برای تغییر ترتیب مرتب سازی در اینجا نمونه مرتب‌سازی دیگری است که می‌توانید بازی کنید
با:

sorted(range(-5, 6), key=lambda x: x * x)
[0, -1, 1, -2, 2, -3, 3, -4, 4, -5, 5]
هر دو مثالی که به شما نشان دادم پیاده سازی های مختصرتری دارند
پایتون با استفاده از توابع داخلی operator.itemgetter() و abs(). اما امیدوارم بتوانید ببینید که چگونه استفاده از لامبدا به شما کمک می کند
انعطاف پذیری بیشتر می خواهید یک دنباله را با محاسبه دلخواه مرتب کنید
کلید؟ مشکلی نیست اکنون می دانید که چگونه این کار را انجام دهید.
در اینجا یک چیز جالب دیگر در مورد لامبدا وجود دارد: درست مانند معمولی
توابع تو در تو، لامبداها همچنین به عنوان بسته های واژگانی کار می کنند.
بسته شدن واژگانی چیست؟ این فقط یک نام فانتزی برای یک تابع است که
مقادیر را از دامنه واژگانی محصور به خاطر می آورد حتی زمانی که
جریان برنامه دیگر در آن محدوده نیست. این یک (نسبتاً آکادمیک) است
مثال برای نشان دادن این ایده:
def make_adder(n):
… return lambda x: x + n
plus_3 = make_adder(3)
plus_5 = make_adder(5)
plus_3(4)
7
plus_5(4)
9
در مثال بالا، x + n لامبدا همچنان می تواند به مقدار n دسترسی داشته باشد
حتی اگر در تابع make_adder تعریف شده باشد (محصول
محدوده).
گاهی اوقات، استفاده از یک تابع لامبدا به جای یک تابع تو در تو
اعلام شده با کلمه کلیدی def می تواند هدف برنامه نویس را بیان کند
واضح تر. اما صادقانه بگویم، این یک اتفاق معمولی نیست – در
حداقل نه در نوع کدی که دوست دارم بنویسم. پس بیایید کمی بیشتر در مورد آن صحبت کنیم.
اما شاید شما نباید…
از یک طرف، امیدوارم این فصل شما را به کاوش توابع لامبدا پایتون علاقه مند کند. از طرف دیگر، احساس می کنم زمان آن فرا رسیده است
برای ایجاد یک هشدار دیگر: از توابع لامبدا باید کم استفاده کرد
و با مراقبت فوق العاده
من می دانم که سهم من از کد را با استفاده از لامبداهای ظاهری نوشته ام
“باحال” اما در واقع یک مسئولیت برای من و همکارانم بود. اگه تو هستی
با وسوسه استفاده از لامبدا، چند ثانیه (یا دقیقه) را صرف فکر کردن کنید
اگر واقعاً تمیزترین و قابل نگهداری ترین راه برای دستیابی به آن باشد.

علیرضا بابامرادی

راه آسان‌تری برای ارتباط با کاربران‌مان پیدا کرده‌ایم :) عضویت در کانال

مطالب زیر را حتما بخوانید:

قوانین ارسال دیدگاه در سایت

  • چنانچه دیدگاهی توهین آمیز باشد تایید نخواهد شد.
  • چنانچه دیدگاه شما جنبه ی تبلیغاتی داشته باشد تایید نخواهد شد.
  • چنانچه از لینک سایر وبسایت ها و یا وبسایت خود در دیدگاه استفاده کرده باشید تایید نخواهد شد.
  • چنانچه در دیدگاه خود از شماره تماس، ایمیل و آیدی تلگرام استفاده کرده باشید تایید نخواهد شد.
  • چنانچه دیدگاهی بی ارتباط با موضوع آموزش مطرح شود تایید نخواهد شد.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

لینک کوتاه:
0