3

所以在里面完成的所有事情都shelve可以用dbmand单独完成pickle

4

1 回答 1

4

是和否。

是的,它依赖于dbmand pickle

与“dbm”数据库的区别在于架子中的值(不是键!)本质上可以是任意 Python 对象——pickle 模块可以处理的任何东西

shelve 模块由 pickle 支持

不,这些模块的使用方式取决于平台/系统。

选择使用哪个数据库包(例如 dbm.ndbm 或 dbm.gnu)取决于可用的接口。因此直接使用dbm打开数据库是不安全的。如果使用数据库,数据库也(不幸地)受到 dbm 的限制——这意味着存储在数据库中的对象(腌制表示)应该相当小,并且在极少数情况下,键冲突可能会导致数据库拒绝更新。


更多在官方文档中。

于 2019-10-06T22:53:22.940 回答