Python 3.7

copyreg - अचार समर्थन कार्यों को पंजीकृत करें




python

copyreg - अचार समर्थन कार्यों को पंजीकृत करें

स्रोत कोड: Lib/copyreg.py

copyreg मॉड्यूल विशिष्ट वस्तुओं को copyreg समय उपयोग किए जाने वाले कार्यों को परिभाषित करने का एक तरीका प्रदान करता है। pickle और copy मॉड्यूल उन कार्यों का उपयोग करते हैं जब उन वस्तुओं को अचार / कॉपी करते हैं। मॉड्यूल ऑब्जेक्ट कंस्ट्रक्टर के बारे में कॉन्फ़िगरेशन जानकारी प्रदान करता है जो कि कक्षाएं नहीं हैं। ऐसे निर्माता कारखाने के कार्य या वर्ग उदाहरण हो सकते हैं।

copyreg.constructor(object)

ऑब्जेक्ट को एक वैध कंस्ट्रक्टर होने की घोषणा करता है। यदि ऑब्जेक्ट कॉल करने योग्य नहीं है (और इसलिए एक निर्माता के रूप में मान्य नहीं है), TypeError उठाता है।

copyreg.pickle(type, function, constructor=None)

यह घोषणा करता है कि फ़ंक्शन को टाइप प्रकार की वस्तुओं के लिए "कमी" फ़ंक्शन के रूप में उपयोग किया जाना चाहिए। फ़ंक्शन को दो या तीन तत्वों से युक्त एक स्ट्रिंग या एक टपल लौटना चाहिए।

वैकल्पिक निर्माण पैरामीटर, यदि प्रदान किया गया है, तो एक कॉल करने योग्य वस्तु है, जिसका उपयोग उस वस्तु को फिर से संगठित करने के लिए किया जा सकता है, जब अचार के समय समारोह में लौटे तर्कों के साथ बुलाया जाता है। यदि ऑब्जेक्ट एक वर्ग या कंस्ट्रक्टर कॉल करने योग्य नहीं है, तो TypeError को उठाया जाएगा।

फ़ंक्शन और निर्माता से अपेक्षित इंटरफ़ेस पर अधिक विवरण के लिए pickle मॉड्यूल देखें। ध्यान दें कि अचार की वस्तु या pickle.Pickler उपवर्ग की pickle.Pickler को कम करने के लिए इस्तेमाल किया जा सकता है।

उदाहरण

नीचे दिए गए उदाहरण से पता चलता है कि अचार समारोह को कैसे पंजीकृत किया जाए और इसका उपयोग कैसे किया जाएगा:

>>> 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...