التصنيفات
الترميز

مقارنة الاختلافات بين بناء جملة بايثون ولامدا

دعنا نلقي نظرة على كلمتين رئيسيتين لهما وظائف متشابهة. ألن تكون قد صنعت اثنين بلا فائدة؟

وصف المواطنة

دعني أقدم لك مثالاً أولاً.

def add(x, y):
    return x + y
print(add(3,5))

ها هي النتيجة:

8

تتم كتابة الوظائف باستخدام الكلمة الأساسية def.

add هو اسم الوظيفة ، ويتم تعريف الوسيطات المراد تمريرها على أنها x و y.

لها وظيفة ترجع نتيجة إضافة قيمتين.

إذا قمت بتمرير 3 و 5 كوسيطات لوظيفة الإضافة التي تم إنشاؤها بهذه الطريقة ، يمكنك أن ترى أن النتيجة هي 8.

وصف لامدا

لنقم بإنشاء نفس الوظيفة على النحو الوارد أعلاه.

add = lambda x,y: x+y
print(add(2,3))

ها هي النتيجة:

5

يستخدم الكلمة lambda لتلقي x و y كوسيطات وإرجاع نتيجة إضافة القيمتين.

تنشئ Lambdas وظائف غير مسماة افتراضيًا.

ويمكنك الكتابة بإيجاز أكثر في سطر واحد.

أيضا ، لا تستخدم الكلمة الرئيسية العودة.

يمكن أيضًا استخدامها بنفس طريقة الوظيفة من خلال تخصيصها لمتغير.

كيفية استخدامها

دعنا نلقي نظرة على مثال استخدام آخر لمساعدتك على الفهم.

temp = [1,2,3,4,5]
result = list(filter(lambda x:x>2, temp))
print(result)

ها هي النتيجة:

[3,4,5]

هذا مثال على استخدام طريقة التصفية لتحديد القيم الأكبر من 2 فقط من مصفوفة تحتوي على العناصر من 1 إلى 5.

تتلقى lambda قيمة ، وتحدد ما إذا كانت أكبر من 2 ، وتقوم بإرجاع قيم منطقية صحيحة أو خطأ.

يعين التابع filter lambda للمتغير الأول وصفيفًا للمتغير الثاني.

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

يتم إنشاء النتيجة التي تم الحصول عليها بواسطة عامل التصفية في شكل مصفوفة باستخدام طريقة list وتخزينها في متغير النتيجة.

لنقم بإنشاء نفس الوظيفة بالضبط باستخدام دالة.

temp = [1,2,3,4,5]
def comp(x):
    return x > 2
result = list(filter(comp, temp))
print(result)

ها هي النتيجة:

[3,4,5]

لا يهم كيفية تنفيذه ، لكن في هذا المثال ، لامدا أكثر إيجازًا ، أليس كذلك؟

في الواقع ، إذا التقطت صورة من هذا النوع ، فستظهر كل من تطبيقات def و lambda مثل الوظائف.

لذلك ، يمكنك التفكير في الأمر على أنه مفهوم يتم تضمين لامدا في دالة.

في الختام ، سيكون من الأفضل استخدام الكلمة الأساسية def لإنشاء وظيفة تحتاج إلى إعادة استخدامها ، واستخدام lambda عندما تريد إنشاء وظيفة بسيطة لمرة واحدة.

هناك 2 ردود على هذا المنصب.

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *

arالعربية