copyreg --- Đăng ký chức năng hỗ trợ pickle¶
Source code: Lib/copyreg.py
Mô-đun copyreg cung cấp cách xác định các chức năng được sử dụng trong khi chọn các đối tượng cụ thể. Các mô-đun pickle và copy sử dụng các chức năng đó khi chọn/sao chép các đối tượng đó. Mô-đun này cung cấp thông tin cấu hình về các hàm tạo đối tượng không phải là lớp. Các hàm tạo như vậy có thể là các hàm xuất xưởng hoặc các thể hiện của lớp.
- copyreg.constructor(object)¶
Khai báo object là một hàm tạo hợp lệ. Nếu object không thể gọi được (và do đó không hợp lệ với tư cách là hàm tạo), hãy tăng
TypeError.
- copyreg.pickle(type, function, constructor_ob=None)¶
Tuyên bố rằng function nên được sử dụng làm chức năng "rút gọn" cho các đối tượng thuộc loại type. function phải trả về một chuỗi hoặc một bộ chứa từ hai đến sáu phần tử. Xem
dispatch_tableđể biết thêm chi tiết về giao diện của function.Tham số constructor_ob là một tính năng cũ và hiện bị bỏ qua, nhưng nếu được thông qua thì nó phải là một tính năng có thể gọi được.
Lưu ý rằng thuộc tính
dispatch_tablecủa đối tượng pickler hoặc lớp con củapickle.Picklercũng có thể được sử dụng để khai báo các hàm rút gọn.
Ví dụ¶
Ví dụ dưới đây muốn chỉ ra cách đăng ký một hàm dưa và cách sử dụng nó:
>>> 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...