البرمجة

فهم عدم إمكانية استخدام ‘return’ في تعبير Lambda بلغة Python

في لغة البرمجة Python، يُعتبر استخدام كلمة “return” في تعبير lambda غير صحيح، وذلك لأن تعبير lambda يستخدم لإنشاء وظائف صغيرة بدون اسم، وتكون ذات استخدام محدود. يتم استخدام lambda لتعريف وظائف بسيطة جداً داخل الكود دون الحاجة إلى تعريف اسم للوظيفة.

السبب وراء عدم إمكانية استخدام “return” في تعبير lambda يعود إلى أن تعبير lambda يُعتبر في حد ذاته تعبيرًا عن قيمة، ويتم استخدام القيمة المُرَجَّعَة ضمن التعبير بدلاً من استخدام “return”.

لذلك، في المثال الذي قدمته، الاستخدام الصحيح لتعبير lambda يكون كما هو موضح في الجزء الثاني من الكود:

python
print((lambda: None)())

هنا، يُنتَج lambda تعبيرًا يقوم بإرجاع قيمة None، ويتم استدعاء هذه الوظيفة الصغيرة عن طريق القوسين الإضافيين ()، مما ينتج عنه طباعة None.

إن استخدام “return” في تعبير lambda سيؤدي إلى خطأ بناء الجملة، حيث يُفضل استخدام lambda لتعبيرات بسيطة تُرجع قيمة مباشرة دون الحاجة إلى “return”.

المزيد من المعلومات

لفهم المزيد حول سبب عدم إمكانية استخدام “return” في تعبير lambda في Python، يمكننا أن نلقي نظرة على الفلسفة الرئيسية لهذه الخاصية.

تعبيرات lambda في Python تستخدم لإنشاء وظائف صغيرة بشكل مباشر ومبسَّط. تُستخدم عادةً في السياقات التي تتطلب وظائف صغيرة للمرة الواحدة وليست بحاجة إلى اسم. تتميز هذه الوظائف بالسطر الواحد والقدرة على الكتابة بشكل مباشر في المكان الذي تُستدعى فيه.

بالنسبة للـ lambda، يُفترض أن يكون التعبير الذي يتم تقديمه هو قيمة تُرجع من الوظيفة. لذلك، الاستخدام الصحيح لتعبير lambda هو تقديم التعبير الذي يُقدم قيمة دون الحاجة إلى “return”.

لتوضيح ذلك أكثر، يُمكن استخدام تعبير lambda في مواقف مثل تحديد وظيفة مبسطة للفرز أو التطبيق على عناصر قائمة بدون الحاجة إلى كتابة دالة كاملة. على سبيل المثال:

python
numbers = [1, 4, 2, 7, 5] sorted_numbers = sorted(numbers, key=lambda x: x * 2) print(sorted_numbers)

هنا، يُستخدم lambda لتحديد الوظيفة التي تُقيِّم كل عنصر بضربه في 2. هذا يعود إلى أن lambda تُستخدم لتعبيرات بسيطة تُرجع قيمة فقط.

لتحقيق المرونة الكاملة ولتعامل مع وظائف أكثر تعقيدًا وبنية، يكون من الأفضل استخدام دوال عادية باستخدام “def” و “return”.

زر الذهاب إلى الأعلى