常规:始终保存关闭时的设置与仅在更改时保存

时间:2012-01-25 10:49:46

标签: python coding-style

我正在测试一个小型python应用程序 - 只要应用程序关闭,设置就会保存,即使我没有做任何更改。我想知道这是否是一般的做法 - 听起来像设置应该只在进行更改时保存但是有原因(除了降低的复杂性)专业保存设置总是关闭?

2 个答案:

答案 0 :(得分:1)

例如,如果您的应用使用configparse,那么如果在结算过程中有类似的话,您将重写该文件:

with open('example.ini', 'w') as configfile:
  config.write(configfile)

如果你没有改变任何东西,它将与以前没有什么不同。

答案 1 :(得分:1)

我不认为这甚至与python有关。一般来说,你会有这样的事情:

  1. 从文件
  2. 加载设置
  3. 使用并修改内存中的设置。
  4. 将设置写入文件。
  5. 检测设置修改会引入2中的更改(保持"更改"状态)或3(使用当前持久设置的diff)。

    第一个解决方案的开销很小(可能是一个布尔值),但它仍然是开销,而且它位于" active"你的程序状态(不启动/关闭)。此外,它是可能出错的附加逻辑(例如,在副本上意外地将布尔值重置为false)。

    第二种解决方案的开销很大,因为你必须加载一个文件,差异化所有设置。与简单的"覆盖"。

    相比,这实际上会显着减慢代码速度

    最后,您只需要在关机时保存一个文件写入,这通常不是应用程序中最关键的部分。如果没有任何改变,你只需重写同一个文件。

    所以我不会这样做,除非存储文件非常复杂/慢或你真的不想要像#34;修改时间"除非您实际更改了设置,否则文件已更改。但这些情况对我来说似乎相当特殊。