如何处理从外部文件配置多个对象?

时间:2014-08-06 19:12:08

标签: python

我有JSON文件,其中包含需要为程序中的对象设置的外部设置。这导致代码看起来像这样:

a_settings = ASettings()
a = A(a_settings, <other dependencies>)
b_settings = BSettings()
b = B(b_settings, <other dependencies>)
c_settings = CSettings()
c = C(c_settings, <other dependencies>)

其中每个XSettings()从设置文件中读取所需的值,然后X的构造函数从注入其中的x_settings变量中访问它们。

我很确定这是实现这一目标的错误方法。哪有更好的方法呢?

澄清:设置文件是必需的,因为它包含需要在外部设置但仍需要加载到程序中的值。

编辑:JSON文件如下所示:

{
    "a": {
        "a1": "value1",
        "a2": "value2"
    },
    "b": {
        "b1": "value3",
        "b2": "value4"
    },
    "c": "value5"
}

1 个答案:

答案 0 :(得分:0)

settings.json

{
    "a": {
        "a1": "value1",
        "a2": "value2"
    },
    "b": {
        "b1": "value3",
        "b2": "value4"
    },
    "c": "value5"
}

Python代码:

import json

settings = json.load(open("settings.json"))
# {'a': {'a2': 'value2', 'a1': 'value1'}, 'b': {'b2': 'value4', 'b1': 'value3'}}
a = A(settings["a"])
b = B(settings["b"])
c = C(settings["c"])