تفاوت اصلی بین lambda و def

شاید بگید lambda نباز ب return نداره
یا بگید lamdba فقط ی عبارت رو محاسبه میکنه (بعضیا میگن ی خطیه)

ولی اگه بخوایم ی جواب مهندسی شده بدیم باید بگیم توابع تعریف شده توسط lambda به صورت single-expression هستن.
درواقع اینترپتر اونهارو ب عنوان یک expression میشناسه ولی توابعی ک با def تعریف میشن ب صورت ی block توی گرامرهای اینترپرتر شناسایی میشن.مثلا:

>>> (lambda x, y: x + y)(5, 3)

ک این کار رو نمیتونیم با def انجام بدیم

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

@rasperry_python

Comments

Be the first to add a comment