我有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"
}
答案 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"])