تقنية

runsource في بايثون: هل False تعني نجاح التنفيذ؟

إسناد مكتمل يعيد False
إسنادنا المحلي. [1] [2]

نشغّل تعليمات مؤلفة في مفسر محلي. [1] [2]

الخلاصة السريعة

لا؛ False ليست شهادة نجاح هنا. [1] [2]

  • الإسناد n=6*7 يعيد False وينشئ n=42. [1] [2]
  • الرأس if True: غير مكتمل؛ يعيد True. [1] [2]
  • القسمة 1/0 تعيد False أيضًا. [1] [2]
  • يظهر ZeroDivisionError عبر stderr؛ الخطأ لم يصبح نجاحًا. [1] [2]
  • اختبرنا 3.12.14؛ ليست بيئة عزل للشيفرة. [1] [2]

المثال

from code import InteractiveInterpreter
r=InteractiveInterpreter()
print(r.runsource("n=6*7"))
print(r.locals["n"])
print(r.runsource("if True:"))
print(r.runsource("1/0"))

[1] [2]

أي معنى للقيمة؟

القيمة المعادة تصف الحاجة إلى مدخل إضافي. في مثالنا يطبع المخرج العادي False ثم 42 ثم True ثم False، ويُكتب تشخيص القسمة في مجرى الخطأ. [1] [2]

False مع تشخيص ZeroDivisionError
قسمة بخطأ. [1] [2]

خطأ الصياغة أيضًا

اختبرنا n =: أعاد False مع SyntaxError. لذلك لا نقرأ القيمة وحدها كحكم على نجاح العمل؛ نفحص الأثر والتشخيص. [1] [2]

الحدود

runsource ينفذ المدخل المكتمل الصالح؛ استعملنا تعليماتنا فقط. لا نعمم التعامل على كل الاستثناءات أو خطاف أخطاء معدل، ولا نشغل حلقة إدخال تفاعلية. [1] [2]

المراجع

  1. Python: code
  2. CPython3.12.14: code.py
  3. موضوع تك: لغة بايثون — مفردات
  4. موضوع تك: تطبيقات بايثون — مفردات

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