Formatter القياسي لا يرفض وسيطًا زائدًا لم يرد في القالب؛ الفحص الافتراضي لا يفعل شيئًا. [1] [2]
الخلاصة السريعة
لا، ينجح المثال رغم الوسيط الزائد. [1] [2]
- Formatter القياسي لا يرفض وسيطًا زائدًا لم يرد في القالب؛ الفحص الافتراضي لا يفعل شيئًا. [1] [2]
- على CPython 3.12.14، نستخدم Formatter() وقالب "{name}"؛ نمرر name="bud" وspare="leaf". [1] [2]
- own تعطي "bud"؛ spare غير مستخدمة ولم تمنع النجاح. [1] [2]
- تحكم: حذف spare من النداء يبقي الناتج "bud"؛ own==control تعطي True. [1] [2]
- لكن قالب "{missing}" مع الوسيطين نفسيهما يرفع KeyError للمفتاح missing. نختبر الصنف القياسي، دون تخصيص فحص الزائد. [1] [2]
الفحص الافتراضي
Formatter القياسي لا يرفض وسيطًا زائدًا لم يرد في القالب؛ الفحص الافتراضي لا يفعل شيئًا. [1] [2]
قالب ووسيط زائد
على CPython 3.12.14، نستخدم Formatter() وقالب "{name}"؛ نمرر name="bud" وspare="leaf". [1] [2]
النجاح مع الزائد
own تعطي "bud"؛ spare غير مستخدمة ولم تمنع النجاح. [1] [2]
from string import Formatter formatter=Formatter() own=formatter.format("{name}",name="bud",spare="leaf") print(own) [1] [2]

حذف الزائد وغياب المطلوب
تحكم: حذف spare من النداء يبقي الناتج "bud"؛ own==control تعطي True. [1] [2]
control=formatter.format("{name}",name="bud") print(own==control) try:formatter.format("{missing}",name="bud",spare="leaf") except KeyError as exc:print(type(exc).__name__,exc.args[0]) [1] [2]
لكن قالب "{missing}" مع الوسيطين نفسيهما يرفع KeyError للمفتاح missing. نختبر الصنف القياسي، دون تخصيص فحص الزائد. [1] [2]
المراجع
للتوسع: لغات البرمجة.
أُعدّ هذا المقال بمساعدة الذكاء الاصطناعي، وخضع لمراجعة ذاتية بالأداة نفسها. لا يُنسب إلى مراجع بشري أو خبير مستقل. منهجية المحتوى.
