الفرق بين المراجعتين لصفحة: «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() والذي لا يحتاج إلى أيّ معاملات. يجب أن يعيد كلا المعاملين كائنات | يجب أن يمتلك المعامل <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>. | ||
تستخدم المعاملات الاختيارية | تستخدم المعاملات الاختيارية <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
: يستخدم هذا الصنف ملفًّا يكتب فيه تدفق البيانات المسلسلة.