الوظائف كحجج
تعرف على كيفية تمرير الوظائف كمعلمات، مما يعزز إمكانية إعادة استخدام التعليمات البرمجية وكفاءتها بشكل كبير في تطوير البرامج.
سنغطي ما يلي...
في 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
الوظيفة والقيم10
و20
يتم تمريرها إلى دالة الآلة الحاسبة. النتيجة30
يتم تمريرها مباشرة إلىprint
الوظيفة والعرض.السطرين 21-22: هنا نرى أن
subtract
يتم تخزين الوظيفة أولاً في متغيرsub_var
ثم انتقلت إلىcalculator
وظيفة.
استخدام lambdas لتحسين قابلية القراءة
من اجلcalculator
في هذه الطريقة، احتجنا إلى كتابة ثلاث دوال إضافية يمكن استخدامها ...