تعلم البرمجة بلغة بايثون #17: الدوال في بايثون: الوسطاء| Functions in Python: Parameters
لننظر مرة أخرى إلى دالة int
والتي تعاملنا معها عدة مرات فيما سبق:
g = int(9.5)
في هذا السطر: نعلم أننا نقوم بتحويل العدد العشري 9.5 إلى عدد صحيح باستخدام الدالة int
وأننا نخزن ناتج التحويل في متغير اسمه g
. يعني بعد تنفيذ هذا السطر سيكون لدينا عدد صحيح هو 9 في المتغير g
. رأينا ذلك سابقاً. الرقم 9.5 هو قيمة تأخذها دالة int
وتقوم بتحويلها إلى عدد صحيح. نسمي هذه القيمة وسيط أو معامل (parameter).
الدالة قد يكون لها وسيط أو وسيطان أو ثلاثة أو عشرة؛ ليس هناك حد أقصى. ويمكن أيضاً للدالة أن لا يكون لها أي وسيط مثل دالة func
في الدرس السابق.
لمعرفة كيفية استخدام الوسطاء (parameters): لننظر إلى المثال التالي:
def greet(lang):
if lang == 'arabic':
print('مرحباً')
elif lang == 'english':
print('Hello')
else:
print('👋🏼')
greet('english')
greet('arabic')
greet('spanish')
في هذا المثال أنشأنا في البداية دالة اسمها greet
. هذه الدالة تأخذ وسيطاً واحداً سميناه lang
. هذه الدالة تقوم بطباعة كلمة ترحيب بناء على اللغة. الوسيط lang
هو الذي يحدد اللغة. داخل الدالة نقوم باستخدام هذا الوسيط، نستخدمه كما كنا نستخدم المتغيرات من قبل. ننظر في البداية إذا كانت قيمة هذا الوسيط هي “arabic” يعني اللغة العربية، إذا كانت “arabic” نقوم بطباعة “مرحباً”، وإذا لم تكن “arabic” ننظر هل هي “english”؟ إذا كانت “english” نطبع كلمة “Hello”، أما إذا كانت قيمة الوسيط ليست “arabic” وليست “english” نقوم بطباعة إشارة الترحيب 👋🏼.
بعد أن ننتهي من إنشاء الدالة ننتقل للسطر التالي:
greet('english')
في هذا السطر نقوم باستدعاء الدالة greet
ونقوم بتمرير السلسلة النصية "english"
كوسيط. الآن ماذا سيحدث؟ سيتم تنفيذ محتويات الدالة greet
وستكون قيمة lang
هي "english"
وبالتالي سيتم طباعة "Hello"
.
إذن lang
هو اسم وسيط نستخدمه داخل الدالة وقيمة هذا الوسيط يتم تحديدها عند استدعاء الدالة.
في السطرين الأخيرين من البرنامج يتم استدعاء الدالة greet
مع تمرير "arabic"
في المرة الأولى و "spanish"
(يعني اسبانية) في المرة الثانية. بعد انتهاء تنفيذ هذا البرنامج سيكون لدينا المخرَجات التالية:
Hello
مرحباً
👋🏼
أكثر من وسيط
بشكل مشابه للمثال السابق: يمكن أن يكون للدالة أكثر من وسيط. لنر المثال التالي:
def add(a, b):
res = a + b
print(res)
add(6, 9)
في هذا المثال: أنشأنا دالة سميناها add
. هذه الدالة تأخذ وسيطين: a
و b
، تقوم بجمع هذين الوسيطين وطباعة الناتج. بعد إنشاء الدالة قمنا باستدعائها مع تمرير العددين 6 و 9. في هذه الحالة سيأخذ الوسيط a
العدد الأول وهو 6 لأنه الوسيط الأول، وسيأخذ الوسيط الثاني b
العدد الثاني وهو 9. سيتم بعدها تنفيذ محتويات الدالة حيث سيتم جمع العددين وتخزين ناتج الجمع في متغير اسمه res
ثم سيتم طباعة قيمة هذا المتغير. وبالتالي فإن ناتج تنفيذ هذا البرنامج سيكون:
15