التابع Cursor.execute()
في بايثون
يستخدم هذا الصنف ملفًّا يكتب فيه تدفق البيانات المسلسلة.
البنية العامة
class pickle.Pickler(file, protocol=None, *, fix_imports=True)
المعاملات
file
يجب أن يمتلك كائن الملفّ تابع write() يستقبل معامل بايتات واحدًا فقط؛ لهذا يمكن أن يكون ملفًّا مخزّنًا في القرص الصلب مفتوحًا لكتابة البيانات الثنائية، أو نسخة من io.BytesIO، أو أي كائن مخصّص آخر يطابق هذه الشروط.
protocol
معامل اختياري، وهو عدد صحيح يُعلم المُسلسِل باستخدام البرتوكول المحدّد بالرقم المعطى، والبروتوكولات المدعومة هي من 0 إلى قيمة الثابت HIGHEST_PROTOCOL.
*
معامل اختياري، وهو عدد صحيح يخبر المُسَلسِل بأن يستخدم البروتوكول المعطى. البروتوكولات المدعومة هي من 0 إلى HIGHEST_PROTOCOL. وفي حال عدم تحديد قيمة هذا المعامل تكون القيمة الافتراضية هي قيمة الثابت DEFAULT_PROTOCOL، أما في حال تقديم رقم سالب فإنّ الدالة ستختار قيمة HIGHEST_PROTOCOL.
fix_imports
إن أخذ هذا المعامل القيمة True وكانت قيمة المعامل protocol أقل من 3، فإنّ وحدة pickle ستحاول ربط الأسماء الجديدة في الإصدار 3 من بايثون بأسماء الوحدات القديمة المستخدمة في الإصدار 2 من بايثون، بحيث يكون تدفق البيانات مقروءًا في الإصدار 2 من بايثون.
توابع الصنف Pickler
التابع dump()
التابع persistent_id()
خصائص الصنف Pickler
dispatch_table
جدول الإرسال dispatch table الخاص بكائنات pickler هو سجلّ لدوال الاختزال reduction functions التي تكون من النوع الذي يمكن التصريح عنه بواسطة الدالة copyreg.pickle(). هذا الجدول هو كائن ربط mapping تكون مفاتيحه أصنافًا وقيمه دوال اختزال. تأخذ دالة الاختزال معاملًا واحدًا من معاملات الصنف المرتبط بها، ويجب أن تكون واجهتها مطابقة لواجهة التابع __reduce__().
لا يمتلك كائن pickler افتراضيًا الخاصية dispatch_table، وسيستخدم عوضًا عنها جدول الإرسال الذي تتحكم به وحدة copyreg. ولكن يمكن تخصيص عملية السلسلة لكائن pickler معيّن عن طريق جعل خاصية dispatch_table تتصرّف ككائن شبيه بالقواميس. أما إن امتلك الصنف المتفرّع من الصنف Pickler خاصية dispatch_table فإنّها ستستخدم حينئذٍ كجدول إرسال افتراضي لنسخ ذلك الصنف.
راجع قسم جداول الإرسال للاطلاع على الأمثلة.
ملاحظة: هذه الخاصية جديدة في الإصدار 3.3 من بايثون.
fast
هذه الخاصية مهملة. تفعّل هذه الخاصية النمط السريع fast mode إن أخذت القيمة True. يعطّل النمط السريع استخدام المذكرة memo، الأمر الذي يساهم في تسريع عملية السلسلة وذلك بعدم إنتاج شيفرة عمليات PUT فائضة عن الحاجة. يجب عدم استخدام هذه الخاصية مع الكائنات التي تمتلك إشارت إلى نفسها، لأنّ ذلك سيدخل كائن Pickler حلقة لا نهائية.
يمكنك استخدام الدالة pickletools.optimize() إن كنت بحاجة إلى عمليات سلسلة مضغوطة ولا تستهلك مساحة كبيرة.
انظر أيضًا
- الصنف
Unpickler
: يستخدم هذا الصنف ملفًّا ثنائيًا يقرأ منه تدفق البيانات المسلسلة.