def تعريف دالة
آخر تحديث: 2026-09-22
def تعريف دالة
def يعرّف دالة؛ ويمكن أن تتضمن قائمة معاملات وتعبير return.
| التصنيف | الكلمات المفتاحية والعبارات |
|---|---|
| النوع | كلمة مفتاحية / عبارة |
| إصدار بايثون | all |
📝 الصياغة
def name(params):
body
[return value]
▶ مثال
عدّل الكود واضغط تشغيل لرؤية النتيجة في لوحة المخرجات:
المخرجات:
Hi, Alice!
🏷️ كلمات مفتاحية / عبارات ذات صلة
💡 حالات ذات صلة
المزيد من الحالات قادم قريباً — تابعونا.
❓ أسئلة شائعة
Qإذا لم يحتوي جسم الدالة على `return`، ماذا يُرجع استدعاؤها؟
Aتُرجع `None`. `def` يعرّف كائن دالة فقط؛ يُنفَّذ الجسم عند الاستدعاء فقط. الدالة التي لا تحتوي `return` أو تحتوي `return` مجردة تُرجع `None` دائمًا.
Qلماذا لا يسري تعديل متغير عام داخل دالة؟
Aلأن إسناد اسم داخل دالة يُنشئ متغيرًا محليًا افتراضيًا ولا يلمس المتغير الخارجي الذي يحمل الاسم نفسه. لتعديل متغير عام على مستوى الوحدة، يجب التصريح بـ `global` داخل الدالة أولاً.
Qلماذا أحصل على رسالة «missing 1 required positional argument» عند استدعاء دالة؟
Aيجب توفير جميع المعامِلات الإلزامية المعرَّفة في كل استدعاء. إذا كنت لا تريد تمريرها في كل مرة، أعطِ المعامِل قيمة افتراضية (`def f(x=1)`)، أو مرّرها صراحةً كمعامِل اسمي `f(x=2)`.
Qما الفرق بين `def` و`lambda`؟
Aيمكن لـ `def` أن يحتوي على عدة عبارات ونصوص توثيقية (docstrings) وتعليقات نوع — إنه أكثر عمومية. بينما يمكن لـ `lambda` أن يكون تعبيرًا واحدًا فقط، مناسبًا كمعامِل لدوال مثل `sorted` و`map` أو `filter`. في معظم الحالات، فضّل `def`.