تقنية

ContentManager في بايثون: أي معالج يتقدم؟

الكامل يتقدم على العام
مخرج المثال. [1] [2]

نسجل دالتين مؤلفتين تعيدان تسميتين، دون فك محتوى. [1] [2]

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

المعالج المسجل للنوع الكامل يتقدم على النوع العام. [1] [2]

  • نوع مثالنا text/plain. [1] [2]
  • نسجل للنوع العام text دالة تعيد general. [1] [2]
  • دالة النوع الكامل تعيد exact، وهو المخرج هنا. [1] [2]
  • باختبار منفصل مع العام وحده نحصل على general. [1] [2]
  • اختبرنا 3.12.14؛ لا فك ترميز أو إرسال بريد. [1] [2]

المثال

from email.contentmanager import ContentManager
from email.message import EmailMessage
m=EmailMessage()
m['Content-Type']='text/plain'
c=ContentManager()
c.add_get_handler('text',lambda m:'general')
c.add_get_handler('text/plain',lambda m:'exact')
print(c.get_content(m))

[1] [2]

اختيار الدالة

المعالج الكامل يُختار رغم تسجيل العام أولًا. القاعدة تبدأ بالاسم الكامل، ثم العام، ثم المفتاح الفارغ؛ غيابها جميعًا يرفع KeyError. [1] [2]

العام وحده يعيد general
اختبار مستقل. [1] [2]

حدود التسميات

exact وgeneral نصان اخترناهما داخل دالتينا، وليسا جسم الرسالة. التسجيل يعدل سجل المدير. لا تثبت النتيجة صلاحية رسالة أو نجاح فك ترميز؛ سلوك الدالة المختارة مسألة منفصلة. [1] [2]

المراجع

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

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