copyreg --- ثبت توابع پشتیبانی pickle¶
کد منبع: Lib/copyreg.py
ماژول copyreg روشی برای تعریف توابعی ارائه میکند که هنگام پیکل کردن اشیاء خاص استفاده میشوند. ماژولهای pickle و copy هنگام پیکل کردن/کپی کردن آن اشیاء از این توابع استفاده میکنند. این ماژول اطلاعات پیکربندی دربارهی سازندههای شیء که کلاس نیستند را فراهم میکند. چنین سازندههایی ممکن است توابع کارخانهای یا نمونههای کلاس باشند.
-
copyreg.constructor(object)¶
object را بهعنوان یک سازنده معتبر اعلام میکند. اگر object قابل فراخوانی نباشد (و در نتیجه بهعنوان یک سازنده معتبر نباشد)، TypeError را پرتاب میکند.
-
copyreg.pickle(type, function, constructor_ob=None)¶
اعلام میکند که function باید بهعنوان تابع «کاهش» (reduction) برای اشیایی از نوع type استفاده شود. function باید یا یک رشته برگرداند یا یک تاپل شامل دو تا شش المان. برای جزئیات بیشتر در مورد رابط function، dispatch_table را ببینید.
پارامتر constructor_ob یک قابلیت قدیمی است و اکنون نادیده گرفته میشود، اما اگر ارسال شود باید فراخوانیپذیر باشد.
توجه داشته باشید که میتوان از ویژگی dispatch_table یک شیء پیکلساز (pickler) یا زیرکلاسی از pickle.Pickler نیز برای اعلام توابع کاهش استفاده کرد.
مثال¶
مثال زیر نشان میدهد که چگونه میتوان یک تابع pickle را ثبت کرد و چگونه از آن استفاده خواهد شد:
>>> import copyreg, copy, pickle
>>> class C:
... 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...
©
حق نشر 2001 Python Software Foundation.
این صفحه تحت مجوز بنیاد نرمافزار پایتون نسخه ۲ منتشر شده است.
مثالها، دستورالعملها، و سایر کدهای موجود در مستندات همچنین تحت مجوز بدون بند BSD منتشر شدهاند.
برای اطلاعات بیشتر به
تاریخچه و مجوز مراجعه کنید.
بنیاد نرمافزار پایتون یک شرکت غیرانتفاعی است.
لطفاً کمک مالی کنید.
آخرین بهروزرسانی در نوامبر 12, 2026 (06:19 UTC).
آیا
اشکالی یافتید؟
ساخته شده با
Sphinx 9.1.0.