الوظائف كحجج
تعرف على كيفية تمرير الوظائف كمعلمات، مما يعزز إمكانية إعادة استخدام التعليمات البرمجية وكفاءتها بشكل كبير في تطوير البرامج.
سنغطي ما يلي...
في 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))
توضيح
وهنا شرح الكود:
الأسطر 1-8: هنا نرى الوظائف الثلاث،
add
،subtract
، وmultiply
سيتم تمريرها كحجج إلىcalculator
وظيفة.السطرين 10-11:
calculator
تم إعلان الدالة هنا. معاملها الأول،operation
سيحمل الدالة المطلوب تنفيذها. المعلمتان التاليتان،n1
وn2
، سوف تحتوي على القيم التي سيتم تمريرها إلىoperation
.الخط 14:
multiply
الوظيفة والقيم10
و20
يتم تمريرها إلى دالة الآلة الحاسبة. النتيجة200
يتم حفظه في متغيرresult
وعرضها.السطرين 17-18:
add
الوظيفة والقيم5
و3
يتم تمريرها إلى دالة الآلة الحاسبة. النتيجة8
يتم تمريرها مباشرة إلىprint
الوظيفة والعرض.السطرين 21-22: هنا نرى أن
subtract
يتم تخزين الوظيفة أولاً في متغيرsub_var
ثم انتقلت إلىcalculator
وظيفة.
استخدام لامدا لتحسين قابلية القراءة
من اجلcalculator
في هذه الطريقة، احتجنا إلى كتابة ثلاث دوال إضافية يمكن استخدامها ...