الوسيطة مقابل المعلمة: الفرق بين الوسيطة والمعامل [مع مثال]

نشرت: 2021-02-05

الوظائف في لغة البرمجة هي جزء من التعليمات البرمجية التي تركز على إعادة الاستخدام والتجريد في التطبيق. يمكن أن يطلق عليها أي عدد من المرات في برنامج ، داخل أو من ملف آخر. هذا مفهوم أساسي تم تبنيه في كل لغة برمجة وهو مفيد جدًا أثناء ممارسة التعلم الآلي أيضًا.

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

أثناء إنشاء الوظائف ، هناك بعض المدخلات التي قد يستغرقها المستخدم لمعالجة التعليمات المرفقة داخل هذه الوظيفة. عادة ما يتم الخلط بين هذه المدخلات بين المصطلحين: الوسيطات والمعلمات. دعنا نلقي نظرة على الفرق بينهما ونكتشف أيهما نستخدمه في أي مكان.

جدول المحتويات

حدود

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

الحجج

يمكن استدعاء الوظائف المعرفة في أي مكان داخل الملف أو في ملف آخر في الدليل حسب حالة الاستخدام. الوسيطات هي المتغيرات التي يتم تمريرها إلى الوظيفة للتنفيذ. وهي تختلف عن المعلمات لأن الوسائط هي القيم الفعلية التي يتم تمريرها إلى رأس الوظيفة.

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

مثال لفهم أفضل

قد تبدو الوسيطة والمعامل قابلين للتبديل ولكن لهما معاني مختلفة في أماكن مختلفة. ضع في اعتبارك مثال حيث نريد حساب مساحة المستطيل. نحن ندرك حقيقة أن صيغة محيط المستطيل تأخذ طول وعرض المستطيل.

إليك كيف ستبدو الوظيفة في برمجة بايثون:

مقياس التحديد (الطول ، العرض):

محيط = 2 * (الطول + العرض)

عودة المحيط

length_arg، breadth_arg = list (map (int، input (). split ()))

محيط = recPerimeter (length_arg ، width_arg)

طباعة (محيط)

في Java ، تأخذ نفس الوظيفة شكل:

استيراد java.util.Scanner ؛

محيط الطبقة العامة {

مقياس قياس int recPerimeter الثابت العام (طول int ، عرض int) {

محيط int = 2 * (الطول + العرض) ؛

محيط العودة

}

العامة الثابتة الفراغ الرئيسي (سلسلة [] args) {

الماسح scn = الماسح الجديد (System.in) ؛

int length_arg = scn.nextInt () ،

int breadth_arg = scn.nextInt () ؛

int perimeter_output = recPerimeter (length_arg ، breadth_arg) ؛

System.out.println (محيط_إخراج) ؛

}

}

وفقًا للتعريف ، فإن الطول والعرض في رؤوس الوظائف المحددة في Python أو Java هي المعلمات ، و length_arg ، width_arg في البرنامج هما الوسيطتان. هذا يثبت أيضًا أن الحجج والمعلمات ليست خاصة باللغة بل هي فكرة مستخدمة لتعريفات الوظائف.

المعلمات الرسمية مقابل الفعلية

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

راجع أيضًا: أفكار وموضوعات مشروع Python

خاتمة

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

إذا كنت مهتمًا بالتعرف على علوم البيانات ، فراجع برنامج IIIT-B & upGrad التنفيذي PG في علوم البيانات الذي تم إنشاؤه للمهنيين العاملين ويقدم أكثر من 10 دراسات حالة ومشاريع ، وورش عمل عملية عملية ، وإرشاد مع خبراء الصناعة ، 1 - في 1 مع موجهين في الصناعة ، أكثر من 400 ساعة من التعلم والمساعدة في العمل مع الشركات الكبرى.

ما هي الاختلافات الهامة بين المعلمات والحجج؟

المعلمات -
1. يتم تحديد هذه أثناء تعريف الوظيفة وتسمى المعلمات.
2. تُعرف أيضًا باسم المعلمات الرسمية.
3. القيم التي تم تمريرها كمعلمات هي متغيرات محلية ويتم تخصيص قيم للوسيطات أثناء استدعاء الوظيفة.
الحجج -
1. القيم التي تم تمريرها أثناء استدعاء الوظيفة تسمى الوسيطات.
2. تُعرف أيضًا باسم المعلمات الفعلية.
3. يتم تعيين كل وسيطة إلى معلمة عند تحديد الوظيفة.

هل يمكن استخدام الحجج والمعلمات بالتبادل؟

ضع في اعتبارك البرنامج التالي لفهم الفرق بين المعامل والوسيطة.
لنفترض أن لديك تعريف دالة "myFunc" مع num1 و num2 كمعلمات وتعيد هذه الدالة مجموع القيم التي تم تمريرها في المعلمة. الآن ، تريد استدعاء هذه الوظيفة داخل الوظيفة الرئيسية بقيمتين مختلفتين لإضافتهما. تسمى القيم التي تمررها أثناء استدعاء الدالة وسيطات الدالة.
في المثال أعلاه ، يمكننا أن نرى بوضوح الفرق بين المعلمات والوسيطات. المتغيرات "num1" و "num2" عند تحديدها في تعريف الدالة هي معلمات وعندما يتم تمرير هذه المتغيرات إلى الوظيفة أثناء استدعاء الوظيفة ، فإنها تكون وسيطات للوظيفة "myFunc".

كم عدد أنواع وسيطات الدوال الموجودة في بايثون؟

في Python ، يمكن للدالة قبول 3 أنواع من الوسائط الموضحة أدناه:

1. الوسيطات الافتراضية: هذه هي الوسائط التي تم تعيينها للمعلمات في وقت تعريف الوظيفة. يتم استخدام عامل التعيين "=" لتعيين القيم الافتراضية (أو الوسائط الافتراضية) لمعلمات الوظيفة. على سبيل المثال: عرض def (النتيجة = 10).
2. وسيطات الكلمات الرئيسية: يتم تمرير هذه الوسيطات عن طريق تحديد الكلمات الأساسية أو الأسماء. نظرًا لأن الكلمات الأساسية يتم تمريرها بمحاذاة قيم الوسيطات ، فإن ترتيب الوسائط لا يهم.
3. الحجج التعسفية: كما يوحي الاسم ، يمكن لوظيفة تقبل الحجج التعسفية أن تقبل أي عدد من الوسيطات. تُستخدم العلامة النجمية "*" في تعريف الوظيفة لتحديد أن الوظيفة يجب أن تأخذ وسيطات عشوائية.