Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/290.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何正确管理应用程序配置_Python_Configuration - Fatal编程技术网

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
的级别有点太低了,我想知道是否有一种方法可以通过更多的抽象来实现。我认为我试图实现的是一项普通任务,所以只想问问其他人是否有更好的方法来管理配置。感谢您的回复