تقنية

warnings في بايثون: هل تسجيل التحذير يوقف التنفيذ؟

تحذير مسجل واحد ثم متابعة التنفيذ
تحذير مؤلف ومسار مستمر. [1] [2]

نسجل تحذيرًا مؤلفًا ونراقب المتابعة. [1] [2]

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

لا يوقف التسجيل التنفيذ هنا؛ المرشح يغيّر السلوك. [1] [2]

  • نفتح catch_warnings(record=True) لقائمة التحذيرات. [1] [2]
  • نختار always ثم نحذر بالرسالة OWN. [1] [2]
  • نسجل عنصرًا من الفئة UserWarning. [1] [2]
  • تُطبع continued بعد التحذير. [1] [2]
  • مع error يُرفع استثناء؛ اختبرنا 3.12.14 بخيط واحد. [1] [2]

المثال

import warnings as w
with w.catch_warnings(record=True) as n:
 w.simplefilter('always')
 w.warn('OWN')
 print(len(n),n[0].category.__name__)
print('continued')

[1] [2]

المخرجان 1 UserWarning ثم continued. [1] [2]

التسجيل والاستثناء

المرشح error يرفع التحذير كاستثناء، فلا يصل إلى التعليمة التالية داخل المسار نفسه. يعيد السياق إعدادات التحذير عند الخروج. [1] [2]

المرشح always يصل للعلامة التالية وerror لا يصل إليها
مرشحان ومساران. [1] [2]

حدود التجربة

لا نعمم سلوك always على كل المرشحات، ولا نختبر التزامن أو تطبيقًا كاملًا. [1] [2]

المراجع

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

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