ami*_*che 5 python database persistence data-structures
我正在考虑创建像dbms引擎这样的持久存储的想法,直接cPickling对象和/或使用shelve模块创建自定义二进制格式有什么好处?
Ste*_*ini 10
酸洗是一个两面硬币.
一方面,您可以通过一种非常简单的方式存储对象.只需要四行代码就可以了.你有完全相同的对象.
另一方面,它可能成为兼容性的噩梦.如果未在代码中定义对象,则无法对其进行解除对象,就像在pickle时定义的那样.这极大地限制了您重构代码或重新排列模块中的内容的能力.此外,并非所有东西都可以被腌制,如果你对腌制的东西不严格并且你的代码的客户完全自由地包含任何对象,迟早它会将一些不可打击的东西传递给你的系统,系统将会繁荣.
对它的使用要非常小心.没有更好的快速和肮脏的定义.