تقنية

Template في بايثون: هل is_valid تضمن وجود قيمة الاستبدال؟

Template("$leaf"); is_valid: True; substitute({}): KeyError
صلاحية وقيمة مفقودة.

في CPython 3.12.14، تعطي is_valid القيمة True لقالبنا، لكن substitute مع قاموس فارغ تفشل. [1] [2]

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

لا؛ صلاحية الصيغة لا توفر قيمة الاستبدال. [1] [2]

  • في CPython 3.12.14، تعطي is_valid القيمة True لقالبنا، لكن substitute مع قاموس فارغ تفشل. [1] [2]
  • نختار Template("$leaf"). تفحص is_valid مواضع القالب، ولا تستقبل قاموس القيم؛ تعيد True هنا. [1] [2]
  • substitute({}) ترفع KeyError؛ القاموس الفارغ لا يحتوي leaf، رغم نجاح فحص الصيغة. [1] [2]
  • تحكم: substitute(leaf="bud") تعيد "bud" للقالب نفسه؛ يبقى نص القالب "$leaf". تغيرت البيانات المتاحة للاستبدال. [1] [2]
  • تحكم للصيغة: Template("$9") تعطي False مع is_valid، ويرفع الاستبدال ValueError. نختبر Template القياسي فقط؛ نوعا الخطأ مختلفان. [1] [2]

نجاح الفحص وفشل الاستبدال

في CPython 3.12.14، تعطي is_valid القيمة True لقالبنا، لكن substitute مع قاموس فارغ تفشل. [1] [2]

ماذا يفحص is_valid؟

نختار Template("$leaf"). تفحص is_valid مواضع القالب، ولا تستقبل قاموس القيم؛ تعيد True هنا. [1] [2]

قيمة مفقودة

substitute({}) ترفع KeyError؛ القاموس الفارغ لا يحتوي leaf، رغم نجاح فحص الصيغة. [1] [2]

from string import Template own=Template("$leaf") print(own.is_valid()) try:own.substitute({}) except KeyError:print("KeyError") [1] [2]

Template("$9"); is_valid: False; substitute(leaf="bud"): ValueError
صيغة معيبة.

القيمة والصيغة المعيبة

تحكم: substitute(leaf="bud") تعيد "bud" للقالب نفسه؛ يبقى نص القالب "$leaf". تغيرت البيانات المتاحة للاستبدال. [1] [2]

print(own.substitute(leaf="bud")) invalid=Template("$9") print(invalid.is_valid()) try:invalid.substitute(leaf="bud") except ValueError:print("ValueError") [1] [2]

تحكم للصيغة: Template("$9") تعطي False مع is_valid، ويرفع الاستبدال ValueError. نختبر Template القياسي فقط؛ نوعا الخطأ مختلفان. [1] [2]

المراجع

  1. Python Template
  2. CPython Template

للتوسع: لغات البرمجة.

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