exec() تنفيذ كتلة كود
آخر تحديث: 2026-09-22
exec() تنفيذ كتلة كود
تنفذ exec() كود Python (تعليمات أو كتلة كود) الموجود في سلسلة نصية، ولا تُرجع قيمة.
| التصنيف | الدوال المدمجة |
|---|---|
| النوع | دالة مدمجة |
| إصدار بايثون | all |
📝 الصياغة
exec(code[, globals[, locals]])
⚙️ المعاملات
| code مطلوب | Code to execute: a string, bytes, or code object. |
|---|---|
| globals اختياري | The global namespace dict.(القيمة الافتراضية:None) |
| locals اختياري | The local namespace dict.(القيمة الافتراضية:None) |
القيمة المُعادة:None; statements in the code take effect in the caller.
💥 الاستثناءات
SyntaxError— Raised when the code has a syntax error.TypeError— Raised when code has an invalid type or globals/locals is not a dict.
▶ مثال
عدّل الكود واضغط تشغيل لرؤية النتيجة في لوحة المخرجات:
المخرجات:
6
y = 6
🏷️ دوال مدمجة ذات صلة
💡 حالات ذات صلة
المزيد من الحالات قادم قريباً — تابعونا.
❓ أسئلة شائعة
Qبعد exec('y = 1') هل يمكنني استخدام y مباشرة؟
Aفي أعلى الوحدة نعم؛ لكن داخل دالة لا، إذ لا تُكتب الإسنادات داخل exec إلى المتغيرات المحلية للدالة. الطريقة الآمنة هي exec(code, ns) ثم القراءة من ns.
Qهل لـ exec() قيمة إرجاع؟
Aلا، تُرجع None دائمًا؛ تُقرأ نتيجة التنفيذ عبر قاموس النطاق، مثل exec('y = x * 2', ns) ثم ns['y'].
Qمتى أستخدم exec() ومتى eval()؟
Aلتنفيذ جمل متعددة أو تعريف دوال استخدم exec؛ لتقييم قيمة تعبير واحد استخدم eval. تحذير الأمان نفسه في الاثنين — لا يجب تنفيذ مدخلات غير موثوقة.
Qكيف أستخدم وسيطة globals في exec؟
Aexec(code, {'x': 3}) يجعل الكود يعمل في النطاق المحدد فقط دون تلويث البيئة الخارجية، وهو أسلوب شائع لعزل بيئة التنفيذ.