تقنية

Formatter في بايثون: هل تُحذف علامات اقتباس المفتاح؟

حقل دون اقتباس يعيد القيمة 7
المفتاح الأول. [1] [2] [3]

صيغة الحقل ليست تعبير فهرسة بايثون المعتاد. [1] [2] [3]

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

لا؛ الاقتباس هنا يدخل في نص المفتاح، فنقرأ قيمتين مختلفتين. [1] [2] [3]

  • القاموس يحتوي bud و'bud' كمفتاحين. [1] [2] [3]
  • الحقل row[bud] يعطينا 7. [1] [2] [3]
  • الحقل row['bud'] يعطينا 9. [1] [2] [3]
  • نقرأ عنصر القيمة من زوج get_field. [1] [2] [3]
  • اختبرنا 3.12.14؛ لا نعمم على f-string. [1] [2] [3]

المثال

from string import Formatter
row={"bud":7,"'bud'":9}
f=Formatter()
print(f.get_field("row[bud]",(),{"row":row})[0])
print(f.get_field("row['bud']",(),{"row":row})[0])

[1] [2] [3]

الاقتباس والفهرسة

المصدر هنا يفصل اسم الحقل ثم يستعمل المفتاح الناتج للفهرسة. في مثالنا تبقى علامتا الاقتباس ضمن المفتاح الثاني. حذف هذا المفتاح من القاموس يجعل الحقل الثاني يرفع KeyError، رغم بقاء bud. [1] [2] [3]

حقل مع اقتباس يعيد القيمة 9
المفتاح الثاني. [1] [2] [3]

النطاق

تتيح الصيغة الوصول بالمفتاح؛ لا تنفذ تعبيرًا عامًا داخل الأقواس. اختبرنا Formatter القياسي وقاموسنا فقط، دون صنف تنسيق مخصص. احتفظ القاموس بقيمه بعد القراءتين. [1] [2] [3]

المراجع

  1. Python 3.12: Formatter field syntax
  2. CPython 3.12.14: Formatter
  3. CPython 3.12.14: Formatter wrapper
  4. موضوع تك: لغة بايثون — مفردات
  5. موضوع تك: تطبيقات بايثون — مفردات

للتوسع: بحث عن لغات البرمجة

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