الوحدة copyreg‎ في بايثون

من موسوعة حسوب
مراجعة 20:47، 15 سبتمبر 2018 بواسطة Mohammed Taher (نقاش | مساهمات)
(فرق) → مراجعة أقدم | المراجعة الحالية (فرق) | مراجعة أحدث ← (فرق)


تقدّم وحدة copyreg طريقة لتعريف دوال تستخدم أثناء سلسلة كائنات معيّنة في بايثون. تستخدم وحدتا pickle و copy هذه الدوال عند سلسلة أو نسخ تلك الكائنات. تقدّم الوحدة كذلك معلومات إعدادات حول الدوال البانية للكائنات التي ليست أصنافًا. يمكن لهذه الدوال البانية أن تكون دوال منشئة للكائنات factory functions أو نسخًا للأصناف.

دوال الوحدة copyreg

تقدّم الوحدة copyreg الدوال التالية:

الدالة copyreg.constructor()‎

تصرّح هذه الدالة عن كون الكائن المعطى دالة بانية صحيحة. إن كان الكائن المعطى غير قابل للاستدعاء (وهكذا يكون غير صالح لأن يصبح دالة بانية) فإنّ الدالة تطلق الاستثناء TypeError.

الدالة copyreg.pickle()‎

تصرّح الدالة عن وجوب استخدام الدالة المعطاة كدالة اختزال reduction function للكائنات من النوع المعطى.

مثال

يعرض المثال التالي طريقة تسجيل دالة سَلسَلة وكيفية استخدامها:

>>> import copyreg, copy, pickle
>>> class C(object):
...     def __init__(self, a):
...         self.a = a
...
>>> def pickle_c(c):
...     print("pickling a C instance...")
...     return C, (c.a,)
...
>>> copyreg.pickle(C, pickle_c)
>>> c = C(1)
>>> d = copy.copy(c)  
pickling a C instance...
>>> p = pickle.dumps(c)  
pickling a C instance...

انظر أيضًا

مصادر

صفحة Efficient arrays of numeric values في توثيق بايثون الرسمي.