Python 如何正确管理应用程序配置
最通用和最好的应用程序配置管理方法是什么?为了“良好的配置管理”,我想拥有这些属性:Python 如何正确管理应用程序配置,python,configuration,Python,Configuration,最通用和最好的应用程序配置管理方法是什么?为了“良好的配置管理”,我想拥有这些属性: 包含所有可用属性及其默认值的列表 地点 应用程序用户可以更改的属性列表,也可以在一个 地点 检索特定属性时,它的值将从 第二个列表(用户可更改配置),如果不存在,则从 第一张名单 到目前为止,我所做的是将第一个列表硬编码为一个对象(更具体地说是一个dict),编写.conf文件,由ConfigParser使用,以使应用程序用户能够轻松地更改一些属性(第二个列表),并在配置对象上编写一个公共方法,根据属性的名
- 包含所有可用属性及其默认值的列表 地点
- 应用程序用户可以更改的属性列表,也可以在一个 地点
- 检索特定属性时,它的值将从 第二个列表(用户可更改配置),如果不存在,则从 第一张名单
dict
),编写.conf
文件,由ConfigParser
使用,以使应用程序用户能够轻松地更改一些属性(第二个列表),并在配置对象上编写一个公共方法,根据属性的名称或如果它不存在的话检索属性,提出一个例外。最后,一个对象负责管理所有内容(解析文件、引发异常、重写属性等),但我想知道,是否有一个内置的库可以做或多或少相同的事情,或者有更好的方法来管理配置,它考虑了所有KISS、DRY和其他原则(我用这种方法不一定能成功)提前感谢。创建一个包含所需默认设置的默认设置模块。创建第二个模块,供用户使用,并在顶部使用“从默认设置导入”*语句,指示用户将任何替换项写入此模块
Python非常有表现力,因此在大多数情况下,如果您希望用户在任何级别上都能理解它,您可以使用Python模块本身作为配置文件。我不明白,
ConfigParser
是内置的,似乎适合您的用例,KISS and DRY是您的责任,只需一点技巧就可以了ught.-当然你可以使用pickle
或marshal
来保存应用程序的整个状态,但这是不可配置的。ConfigParser
确实是你想在这里使用的。不过,我对你的解释有点困惑。你有什么具体原因不能/不想使用ConfigParser
?我可以告诉你使用它,但是ConfigParser
的级别有点太低了,我想知道是否有一种方法可以通过更多的抽象来实现。我认为我试图实现的是一项普通任务,所以只想问问其他人是否有更好的方法来管理配置。感谢您的回复