Functions as Arguments
الدرس 3 من 12 في دورة المزخرفات في Python على Coddy.
في لغة بايثون (Python)، يمكننا تمرير دالة كوسيط (argument) لدالة أخرى.
على سبيل المثال،
def add_numbers(a, b):
return a + b
def multiply_numbers(a, b):
return a * b
def calculate(func, a, b):
return func(a, b)
result = calculate(add_numbers, 2, 3)
print(result) # Output: 5
result = calculate(multiply_numbers, 2, 3)
print(result) # Output: 6
في هذا المثال، قمنا بتعريف دالتين: add_numbers و multiply_numbers.
بعد ذلك، قمنا بتعريف دالة ثالثة تسمى calculate، والتي تأخذ دالة func كوسيط أول لها، بالإضافة إلى وسيطين إضافيين a و b.
عندما نستدعي calculate، نقوم بتمرير اسم الدالة التي نريد استخدامها (إما add_numbers أو multiply_numbers) كوسيط func، بالإضافة إلى الرقمين اللذين نريد إجراء العملية عليهما.
تقوم دالة calculate بعد ذلك باستدعاء الدالة func مع الرقمين وإرجاع النتيجة.
في المثال أعلاه، قمنا باستدعاء calculate مرتين: مرة مع add_numbers ومرة مع multiply_numbers.
الاستدعاء الأول يعيد مجموع 2 و 3 (وهو 5)، والاستدعاء الثاني يعيد حاصل ضرب 2 و 3 (وهو 6).
التحدي
سهلاكتب دالة تسمى list_operator تأخذ قائمة من الأعداد الصحيحة ودالة عامل (operator function) كوسطاء.
يجب أن تأخذ دالة الـ operator عددين صحيحين كمدخلات وتعيد عدداً صحيحاً واحداً كمخرج.
يجب أن تقوم دالة list_operator بتطبيق دالة العامل على جميع أزواج الأعداد الصحيحة المتجاورة في القائمة وإرجاع قائمة جديدة تحتوي على النتائج.
إليك مثال على كيفية عمل الدالة:
>>> numbers = [1, 2, 3, 4, 5]
>>> result = list_operator(numbers, operator.add)
>>> result
[3, 5, 7, 9]
>>> numbers = [10, 20, 30, 40]
>>> result = list_operator(numbers, operator.mul)
>>> result
[200, 600, 1200]القيود
- ستحتوي قائمة المدخلات دائماً على عددين صحيحين على الأقل.
- ستأخذ دالة العامل دائماً عددين صحيحين كمدخلات وتعيد عدداً صحيحاً واحداً كمخرج.
ملاحظة! دالة العامل (operator function) مقدمة من قبلنا، لست بحاجة لإنشائها، فقط قم باستخدامها.
جرّب بنفسك
جميع دروس المزخرفات في Python
تدرّب بنفسك: مترجم Python عبر الإنترنت