Trong câu trả lời cho Python pickle: dealing with updated class definitions, tác giả của gói dill
viết:.Làm thế nào để sử dụng thì là để tuần tự hóa một định nghĩa lớp?
"Ok, tôi đã thêm tính năng này để Dill trong phiên bản mới nhất trên github thực hiện với ít thủ đoạn gian trá hơn tôi nghĩ ... chỉ serialize định nghĩa lớp với dưa chua, và thì đấy. "
Sau khi cài đặt dill
và được lưu trữ với nó, điều đó không rõ ràng đối với tôi cách thực sự sử dụng chức năng này trong dill
. Ai đó có thể cung cấp một ví dụ rõ ràng? Tôi muốn pickle dụ class và cũng serialize định nghĩa lớp.
(Tôi mới sử dụng python và chức năng này có vẻ cực kỳ quan trọng, vì khi chọn một đối tượng, sẽ rất tuyệt để có được sự bảo đảm nhất có thể mà bạn có thể nhìn vào đối tượng (có thể là kết quả của một mô phỏng) trong tương lai sau khi định nghĩa lớp có thể đã thay đổi và bạn không theo dõi tất cả các thay đổi theo cách dễ dàng truy cập.)
Liên quan đến khối mã đầu tiên của bạn, tôi chạy nó và nó thổi lên chính xác như 'pickle' sẽ: AttributeError: 'Foo' đối tượng không có thuộc tính 'y'. circa line 25. Quá tệ, bởi vì nó có vẻ giống như một phép thuật, và nó sẽ làm cho việc lưu trữ các đối tượng dill-ed trong một cơ sở dữ liệu dễ bảo trì hơn. Vì vậy, có một trường hợp sử dụng rất lớn. Dill 0.2.7.1, thì là các thiết lập mặc định (byref False). Tôi hy vọng đó là lỗi của nhà điều hành, nhưng việc cắt và dán lại chắc chắn trong kỹ năng của tôi. – piccolbo
Lỗi cụ thể đối với ipython. Tiếng thở dài nhẹ nhõm nhưng vẫn khó hiểu ... sẽ điều tra và/hoặc mở một vé – piccolbo
@piccolbo: Lạ lùng. Tôi có thể lặp lại hành vi trong 'ipython' - vì vậy họ phải mucking với điều gì đó bất ngờ. Điều này có vẻ như đó là hành vi mới. Hmm. Tôi đã thấy vé của bạn, cảm ơn. –