تقنية

Policy.clone في بايثون: هل يتغير فاصل الأصل؟

الأصل يحتفظ بفاصل LF
قيمة الأصل. [1] [2]

ننسخ إعدادًا في الذاكرة، دون رسالة أو إرسال. [1] [2]

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

لا؛ النسخة كائن جديد، ويبقى فاصل الأصل في مثالنا. [1] [2]

  • الأصل policy.default يحتفظ بفاصل LF. [1] [2]
  • حددنا للنسخة فاصل CRLF. [1] [2]
  • repr يظهر رموز الفاصل بدل أسطر فارغة. [1] [2]
  • اختبار الهوية يطبع False. [1] [2]
  • نطاقنا 3.12.14؛ لا تحويل رسالة أو إرسال بريد. [1] [2]

المثال

from email import policy
p=policy.default.clone(linesep='\r\n')
print(repr(policy.default.linesep))
print(repr(p.linesep))
print(p is policy.default)

[1] [2]

القيمة والهوية

الأصل والنسخة يعطيان في التمثيل النصي '\n' ثم '\r\n'. وFalse يعني أنهما ليسا الكائن نفسه. clone ينشئ نسخة مع الإعداد المحدد؛ لم نغير الأصل. [1] [2]

النسخة تحمل فاصل CRLF
قيمة النسخة. [1] [2]

حدود النسخ

إسناد فاصل جديد مباشرة إلى الأصل رفع AttributeError في اختبارنا. نسخ إعداد ليس تحويل رسالة موجودة، ولا فحص وصول بريد. لم نختبر تسلسل رسالة أو طي رؤوس؛ لا نزعم نسخًا عميقًا لكل قيمة داخل السياسة. [1] [2]

المراجع

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

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