هذه المقالة هي مكملة لكورس(تعلم بايثون)،ألذي قدمناه مسبقاً وأذا أحببتَ الأطلاع على هذا ألكورس فيمكنك من خلال ألرابط ألتالي من هنا.
ولآن لنبدأ في تعريف ألدوال في بايثون:
تعريف ألدوال في بايثون:
هي عبارة عن مجموعة من الأكواد ألبرمجية ألتي يتم أستدعاءها عند ألحاجة فقط،وتكون ذات فائدة لنا في ترتيب ألكود ألبرمجي لكي يتم قراءته بصورة سهلة ومنظمة.
ويمكن أنشاء الدالة بأستخدام ألمصطلح def كما سنراه في ألمثال الآتي:
:()def Function('print('Hello Function
كما نلاحظ في ألمثال تم كتابة ألدالة بأستخدام ألمصطلح def ويليه أسم ألدالة(بالطبع يمكننا أختيار أي أسم للدالة حسب ألرغبة) وبعدها قوسين هلالين ونقطتان(يجب أستخدام ألقوسين الهلالين دائماً،لأن بدونهما لن تعمل ألدالة)،وفي السطر يليه نكتب محتوى ألدالة وماستكون وظيفتها عند أستدعائها.هنا في ألمثال ستكون وظيفتها هي طباعة عبارة Hello Function.
الآن لنقوم بأستدعاء هذه ألدالة ولنرى كيف ستُنفذ في ألكود ألبرمجي:
:()def Function
('print('Hello Function
()Function
عند تنفيذ ألكود سنرى النتيجة كالتالي:
Hello Function
أذن تم عمل ألوظيفة بشكل صحيح.
يمكن تمرير باراميترات أو عناصر أو ماتسمى بـ Arguments ألى ألدالة التي نقوم بأنشاءها وذلك للقيام بوظيفة معينة،مثلاً نجعل ألدالة تقوم بطباعة أسم شخص ألمدخل أليها وذلك يتم عن طريق كتابة الأسم داخل أقواس ألدالة.
لنرى مثال بسيط لكي يتم فهم هذا ألموضوع جيداً:
:(def Function(name( print('Hello ' + name("Function("Ali
كما نلاحظ تم تمرير باراميتر name ألى ألدالة عند كتابتها وألذي يكون دائماً داخل ألقوسين الهلالين،وستكون وظيفة هذه ألدالة هي طباعة عبارة ترحيبية عند أدخال أسم شخص معين Hello+name.قمنا بأدخال أسم Ali عند أستدعاء هذه الدالة(بالطبع يمكننا تجربة أي أسم) وظهرت لنا هذه النتيجة:
Hello Ali
يمكن تمرير أكثر من باراميتر قد يكون أثنان أو ثلاثة أو أكثر ألى ألدالة ألتي نقوم بأنشاءها،وذلك للقيام بوظيفة معينة،مثلاً نجعل ألدالة تقوم بجمع رقمين المدخلان أليها،وذلك يتم عن طريق كتابة ألرقمين داخل أقواس ألدالة.
لنرى مثال بسيط لدالة تقوم بجمع رقمين:
:(def Add(num1, num2(print(num1 + num2(Add(2, 4
قمنا بأنشاء دالة Add تحتوي على براميترين هما num1,num2، وظيفة هذه ألدالة هي جمع رقمين ألمدخلين أليها من خلال الأيعاز num1+num2.
ونقوم بأستدعاء هذه ألدالة من خلال الأيعاز Add(2,4) لكي تجمع ألعددين 2,4عند تنفيذ ألكود ستظهر لدينا ألنتيجة 6 وهي نتيجة صحيحة للدالة.
لنأخذ مثال آخر وهو أنشاء دالة تقوم بطرح عددين:
:(def Sub(num1, num2
(print(num1 - num2
(Sub(5, 4
ستقوم ألدالة Sub()بطرح ألعددين ألمدخلين أليها،وقمنا بأدخال ألعددين 5و4 ألتي ستعطينا ألنتيجة 1 عند تنفيذ ألكود.
ملاحظة مهمة:عند تحديد عدد البراميترات ألمدخلة للدالة عند أنشاءها،يجب أن يكون نفس ألعدد للبراميترات عند أستدعاء ألدالة،أذا لم يكن نفس ألعدد ألمدخل سيظهر لدينا خطأ ولن يتم تنفيذ الكود.
يمكننا وضع قيمة أفتراضية للبراميتر داخل أقواس الدالة،حيث تكون فائدة هذه ألقيمة الأفتراضية في حال نسينا أن نمرر باراميتر للدالة فستكون هذه ألقيمة الأفتراضية هي ألبارميتر داخل أقواس الدالة.
سنرى في المثال الآتي كيفية وضع ألقيمة الأفتراضية:
:("def Function(country="Iraq(print("My Country is: " + country()Function("Function("Egypt("Function("Syria("Function("Algeria
قمنا بأنشاء دالة Function تحتوي على باراميتر واحد country،وظيفة هذه ألدالة هي طباعة عبارة My Country is+country.في حال أذا نسينا تمرير باراميتر عند أستدعاء هذه الدالة،ستكون ألقيمة الأفتراضية هي Iraq.
تم أستدعاء ألدالة وفي أول دالة لم نكتب أي باراميتر،وفي بقية ألدوال كتبنا أسماء بلدان عربيةوعند تنفيذ ألكود سنرى ألنتيجة الآتية:
My Country is: Iraq
My Country is: Egypt
My Country is: Syria
My Country is: Algeria
بالفعل في ألنتيجة الأولى تم أستدعاء ألقيمة الأفتراضية ألتي وضعناها عند أنشاء ألدالة،أما بقية النتائج فتم طباعة ما أدخلناه من أسماء ألبلدان العربية.
يمكننا أيضاً تمرير قائمة List أو قاموس Dictionary من البارميترات ألى الدالة ألتي نقوم بأنشاءها،وذلك للقيام بوظيفة معينة،مثلاً نجعل الدالة تقوم بطباعة أسماء ألموظفين ألمدخلة ألى ألدالة.
سنرى ذلك من خلال ألمثال الآتي:
:(def Employees(names:for e in names(print(e["employees = ["Ahmed", "Ali", "Yasser(Employees(employees
تم أنشاء دالة Employees تحتوي على باراميتر names،وهذه الدالة تحتوي على عداد يقوم بعد الأسماء ألمدخلة للدالة ومن ثم طباعة هذه الأسماء.
لتنفيذ هذه الدالة،تم أنشاء قائمة employees تحتوي على أسماء موظفين ومن ثم تم أستدعاء ألدالة التي قمنا بانشاءها مسبقاً وتمرير ألقائمة أليها لتقوم بأظهار ألنتيجة ألتالية:
Ahmed
Ali
Yasser
وهكذا نختتم مقالتنا (ألدوال في بايثون)ونتمنى أن تنال أستحسانكم وأن يكون ألشرح واضحاً ووافياً،وأذا كان لديكم أي أستفسار أو سؤال فيمكنكم تركه لي في خانة ألتعليقات ألموجودة في الأسفل.
شكراً لكم.
م.م رسول حسن
تعليقات
إرسال تعليق