返回介绍

更新 shelve 中的对象

发布于 2024-01-29 22:24:15 字数 968 浏览 0 评论 0 收藏 0

现在来介绍最后一段脚本:让我们编写一个程序,在每次运行的时候更新一个实例(记录),以证实此时我们的对象真的是持久的(例如,每次一个Python程序运行的时候,它们的当前值都是可用的)。如下的文件updatedb.py打印出数据库,并且每次把我们所存储的对象之一增加一次。如果跟踪这里所发生的事情,你会注意到,我们发现可以“免费”地使用很多工具——自动使用通用的__str__重载方法打印对象,调用giveRaise方法增加之前写入的值。这些对基于OOP继承模型上的对象“就有效了”,即便当它们位于一个文件中:

由于这段脚本启动的时候会打印数据库,我们必须运行它几次才能看到对象的改变。如下是它的运行情况,显示出所有的记录并且每次运行的时候增加了sue的pay(这对sue来说真是一段不错的脚本...)

再一次,我们在这里看到了一个从Python中得到的成品的shelve和pickle工具,并且它具备我们自己在类中编写的行为。再一次,我们可以在交互模式(shelve的同等的数据库客户端)中验证脚本的作用:

本书第30章中的方框“为什么要在意:类和持续性”部分给出了另一个对象持久化的例子。它使用pickle而不是shelve在一个普通文件中存储了一个更大的复合对象,但是,效果是类似的。要了解有关pickle和shelve的更多细节,参见其他图书或者Python的手册。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文