那么shelve
中完成的所有操作都可以分别由dbm
和pickle
完成吗?
答案 0 :(得分:3)
是和否
是的,它依赖于dbm
和pickle
。
与“ dbm”数据库的区别在于,架子中的值(不是键!)本质上可以是任意的Python对象-pickle模块可以处理的任何事情
搁板模块由泡菜支持
不,这些模块的使用方式取决于平台/系统。
将使用哪个数据库软件包(例如dbm.ndbm或dbm.gnu)的选择取决于可用的接口。因此,直接使用dbm打开数据库是不安全的。如果使用数据库,数据库也(不幸地)受到dbm的限制-这意味着存储在数据库中的对象(的腌制形式)应该很小,在极少数情况下,键冲突可能导致数据库崩溃。拒绝更新。
official documentation中的更多内容。