dill:解決python的“AttributeError: Can't pickle local object”及無法pickle lambda函數的問題


python的pickle是用來序列化對象很方便的工具,但是pickle對傳入對象的要求是不能是內部類,也不能是lambda函數。

比如嘗試pickle這個內部類:

結果會報錯AttributeError: Can't pickle local object

這個問題可以用第三方庫dill來解決: (https://pypi.org/project/dill/)

結果:

dill除了可以處理pickle可以處理的標准類型外:

嗯,還是很好用的。

(另外python內建庫shelve也是用的pickle做后端,所以默認也是不能處理內部類和lambda函數的。)

進一步參考:

https://medium.com/@emlynoregan/serialising-all-the-functions-in-python-cd880a63b591


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM