الوظائف كحجج
تعرف على كيفية تمرير الوظائف كمعلمات، مما يعزز إمكانية إعادة استخدام التعليمات البرمجية وكفاءتها بشكل كبير في تطوير البرامج.
سنغطي ما يلي...
في Python، يمكن أن تصبح دالة وسيطة لدالة أخرى. هذا مفيد في كثير من الحالات. لننشئ دالة calculator
تتطلب دالة add
أو subtract
أو multiply
، بالإضافة إلى رقمين كوسيطين. للقيام بذلك، علينا تعريف الدوال الحسابية الثلاث أيضًا.
استخدام وظائف بسيطة
في هذا المثال، لدينا العديد من الوظائف للعمليات الحسابية الأساسية ووظيفة الآلة calculator
التي تأخذ وظيفة أخرى كحجة لها لإجراء العملية المحددة.
def add(n1, n2):return n1 + n2def subtract(n1, n2):return n1 - n2def multiply(n1, n2):return n1 * n2def calculator(operation, n1, n2):return operation(n1, n2) # Using the 'operation' argument as a function# Using the calculator with the multiply functionprint(calculator(multiply, 10, 20))# Using the calculator with the add functionresult = calculator(add, 5, 3)print(result)# Assigning a function to a variable and passing it to the calculatorsub_var = subtractprint(calculator(sub_var, 10, 20))
توضيح
وهنا شرح الكود:
الأسطر من ١ إلى ٨: نرى هنا الدوال الثلاث،
add
،subtract
،multiply
. سيتم تمرير هذه الدوال كوسائط إلى دالةcalculator
.السطران ١٠-١١: تم هنا إعلان دالة
calculator
. معاملها الأول،operation
)، سيحمل الدالة المطلوب تنفيذها. المعاملان التاليان،n1
وn2
، سيحملان القيم التي سيتم تمريرها إلىoperation
.السطر ١٤: تُمرَّر دالة
multiply
والقيمتان10
و20
إلى دالة الآلة الحاسبة. تُحفَظ النتيجة200
في متغيرresult
وتُعرَض.السطران ١٧-١٨: تُمرَّر دالة
add
والقيمتان10
و20
إلى دالة الآلة الحاسبة. تُمرَّر النتيجة30
مباشرةً إلى دالةprint
وتُعرَض.السطرين 21-22: نرى هنا أن دالة
subtract
يتم تخزينها أولاً في متغيرsub_var
ثم يتم تمريرها إلى دالةcalculator
.
استخدام lambdas لتحسين قابلية القراءة
بالنسبة لطريقة calculator
، احتجنا إلى كتابة ...