Open In App

copyreg — Register pickle support functions

Last Updated : 08 Dec, 2020
Improve
Improve
Like Article
Like
Save
Share
Report

The copyreg module defines functions which are used by pickling specific objects while pickling or copying. This module provides configuration information about object constructors(may be factory functions or class instances) which are not classes.

copyreg.constructor(object)
This function is used for declaring object as a valid constructor. An object is not considered as a valid constructor if it is not callable. This function raises TypeError if the object is not callable.

copyreg.pickle(type, function, constructor=None)
This is used to declare function as a “reduction” function for objects of type type. function should return either a string or a tuple containing two or three elements.
The constructor parameter is optional. It is a callable object which can be used to reconstruct the object when called with the tuple of arguments returned by function at pickling time. TypeError is raised if object is a class or constructor is not callable.

Example :




# Python 3 program to illustrate 
# use of copyreg module 
import copyreg, copy, pickle 
  
class B(object): 
    def __init__(self, a): 
        self.a =
  
def pickle_b(b): 
    print("pickling a C instance..."
    return C, (b.a, ) 
  
copyreg.pickle(B, pickle_b) 
b = B(1
d = copy.copy(b) 
print (d) 
  
r = pickle.dumps(b) 
print (r) 


Output :

pickling a C instance...

pickling a C instance...
b'\x80\x03c__main__\nC\nq\x00K\x01\x85q\x01Rq\x02.'

Like Article
Suggest improvement
Previous
Next
Share your thoughts in the comments

Similar Reads