الفرق بين المراجعتين لصفحة: «Python/Unpickler»

من موسوعة حسوب
أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE:الصنف <code>pickle.Unpickler()‎</code> في بايثون}}</noinclude> يستخدم هذا الصنف ملفًّا ثنائيًا يق...'
 
لا ملخص تعديل
سطر 10: سطر 10:
class pickle.Unpickler(file, *, fix_imports=True, encoding="ASCII", errors="strict")
class pickle.Unpickler(file, *, fix_imports=True, encoding="ASCII", errors="strict")
</syntaxhighlight>
</syntaxhighlight>
 
== المعاملات ==
== ‎المعاملات ==


=== <code>file</code> ===
=== <code>file</code> ===


يجب أن يمتلك المعامل file تابعين، الأول هو تابع read()‎ والذي يأخذ معاملًا عدديًا، وتابع readline()‎ والذي لا يحتاج إلى أيّ معاملات. يجب أن يعيد كلا المعاملين كائنات bytes، ولهذا يمكن أن يكون file كائن ملف مخزّنًا على القرص الصلب ومفتوحًا للقراءة الثنائية، أو كائن io.BytesIO أو أي كائن آخر يطابق هذه الشروط.
يجب أن يمتلك المعامل <code>file</code> تابعين، الأول هو تابع <code>read()</code>‎ والذي يأخذ معاملًا عدديًا، وتابع <code>readline()‎</code> والذي لا يحتاج إلى أيّ معاملات. يجب أن يعيد كلا المعاملين كائنات <code>bytes</code>، ولهذا يمكن أن يكون <code>file</code> كائن ملف مخزّنًا على القرص الصلب ومفتوحًا للقراءة الثنائية، أو كائن <code>io.BytesIO</code> أو أي كائن آخر يطابق هذه الشروط.


=== <code>fix_imports</code> ===
=== <code>fix_imports</code> ===
سطر 23: سطر 23:
=== المعاملان <code>encoding</code> و <code>errors</code>===
=== المعاملان <code>encoding</code> و <code>errors</code>===


يُعلم المعاملان encoding و errors وحدة pickle عن كيفية فك ترميز نسخ السلاسل النصية ‎8-bit والمُسَلسَلة في الإصدار الثاني من بايثون. يأخذ هذا المعاملان القيمتين الافتراضيتين 'ASCII' و 'strict' على التوالي. ويمكن أن يأخذ المعامل encoding القيمة 'bytes' وذلك لقراءة نسخ السلاسل النصية ‎8-bit ككائنات bytes.
يُعلم المعاملان <code>encoding</code> و <code>errors</code> وحدة <code>[[Python/pickle|pickle]]</code> عن كيفية فك ترميز نسخ السلاسل النصية ‎8-bit والمُسَلسَلة في الإصدار الثاني من بايثون. يأخذ هذا المعاملان القيمتين الافتراضيتين <code>'ASCII'</code> و <code>'strict'</code> على التوالي. ويمكن أن يأخذ المعامل <code>encoding</code> القيمة <code>'bytes'</code> وذلك لقراءة نسخ السلاسل النصية ‎8-bit ككائنات <code>bytes</code>.


تستخدم المعاملات الاختيارية fix_imports، encoding و errors في التحكم بدعم التوافق لتدفق السلسلة الناتج من الإصدار الثاني من بايثون.  
تستخدم المعاملات الاختيارية <code>fix_imports</code>و<code>encoding</code> و <code>errors</code> في التحكم بدعم التوافق لتدفق السلسلة الناتج من الإصدار الثاني من بايثون.  


== توابع الصنف <code>Pickler</code> ==
== توابع الصنف <code>Pickler</code> ==
سطر 33: سطر 33:


=== التابع <code>[[Python/Pickler/persistent_load|persistent_load()]]‎</code> ===
=== التابع <code>[[Python/Pickler/persistent_load|persistent_load()]]‎</code> ===
يطلق هذا التابع افتراضيًا الاستثناء UnpicklingError.
يطلق هذا التابع افتراضيًا الاستثناء <code>UnpicklingError</code>.


=== التابع <code>[[Python/Pickler/find_class|find_class()]]‎</code> ===
=== التابع <code>[[Python/Pickler/find_class|find_class()]]‎</code> ===

مراجعة 18:26، 20 سبتمبر 2018


يستخدم هذا الصنف ملفًّا ثنائيًا يقرأ منه تدفق البيانات المسلسلة.

يجري الكشف عن رقم البروتوكول المستخدم تلقائيًا؛ لذا لا حاجة لأي معامل لتحديده.

البنية العامة

class pickle.Unpickler(file, *, fix_imports=True, encoding="ASCII", errors="strict")

‎المعاملات

file

يجب أن يمتلك المعامل file تابعين، الأول هو تابع read()‎ والذي يأخذ معاملًا عدديًا، وتابع readline()‎ والذي لا يحتاج إلى أيّ معاملات. يجب أن يعيد كلا المعاملين كائنات bytes، ولهذا يمكن أن يكون file كائن ملف مخزّنًا على القرص الصلب ومفتوحًا للقراءة الثنائية، أو كائن io.BytesIO أو أي كائن آخر يطابق هذه الشروط.

fix_imports

إن أخذ هذا المعامل القيمة True وكانت قيمة المعامل protocol أقل من 3، فإنّ وحدة pickle ستحاول ربط الأسماء الجديدة في الإصدار 3 من بايثون بأسماء الوحدات القديمة المستخدمة في الإصدار 2 من بايثون، بحيث يكون تدفق البيانات مقروءًا في الإصدار 2 من بايثون.

المعاملان encoding و errors

يُعلم المعاملان encoding و errors وحدة pickle عن كيفية فك ترميز نسخ السلاسل النصية ‎8-bit والمُسَلسَلة في الإصدار الثاني من بايثون. يأخذ هذا المعاملان القيمتين الافتراضيتين 'ASCII' و 'strict' على التوالي. ويمكن أن يأخذ المعامل encoding القيمة 'bytes' وذلك لقراءة نسخ السلاسل النصية ‎8-bit ككائنات bytes.

تستخدم المعاملات الاختيارية fix_importsوencoding و errors في التحكم بدعم التوافق لتدفق السلسلة الناتج من الإصدار الثاني من بايثون.

توابع الصنف Pickler

التابع load()‎

يقرأ التابع تمثيل كائن مسلسل من كائن الملف المفتوح في الدالة البانية للصنف، ويعيد هيكل الكائن المعاد بناؤه والموصوف في هذا الملف.

التابع persistent_load()

يطلق هذا التابع افتراضيًا الاستثناء UnpicklingError.

التابع find_class()

يستورد التابع الوحدة المعطاة إذا اقتضت الحاجة ويعيد الكائن الذي يحمل الاسم المحدّد.

انظر أيضًا

  • الصنف Pickler : يستخدم هذا الصنف ملفًّا يكتب فيه تدفق البيانات المسلسلة.

مصادر