تقنية

copyreg.add_extension في بايثون: هل التسجيل المكرر خطأ؟

التكرار المطابق يعيد None
تكرار مطابق. [1] [2]

نميز التكرار المطابق من التعارض في السجل. [1] [2]

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

لا؛ تكرار الربط نفسه مقبول هنا. [1] [2]

  • نسجل OWN وbud بالرمز 241. [1] [2]
  • التكرار المطابق يعيد None دون مدخل جديد. [1] [2]
  • الاسم leaf بالرمز نفسه يرفع ValueError. [1] [2]
  • تغيير الرمز للاسم المسجل يتعارض أيضًا. [1] [2]
  • اختبرنا 3.12.14 بسجل معزول ونزيل تسجيلنا في finally. [1] [2]

المثال

import copyreg as c
c.add_extension('OWN','bud',241)
try:
 print(c.add_extension('OWN','bud',241))
 try:c.add_extension('OWN','leaf',241)
 except ValueError:print('ValueError')
finally:
 c.remove_extension('OWN','bud',241)

[1] [2]

شرط القبول

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

اسم آخر بالرمز نفسه يرفع ValueError
تعارض. [1] [2]

النطاق

اخترنا رمزًا خاصًا غير مستخدم. التجربة تغير السجل مؤقتًا، ولا تسلسل بيانات أو تحمّلها. OWN اسم مؤلف؛ لا نفحص استيراده. [1] [2]

المراجع

  1. CPython 3.12.14: registry tests
  2. CPython 3.12.14: copyreg.py
  3. موضوع تك: لغة بايثون — مفردات
  4. موضوع تك: تطبيقات بايثون — مفردات

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

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