【发布时间】:2016-11-03 09:43:36
【问题描述】:
这不是我的代码,但我有类似的问题:
https://gist.github.com/songrotek/0c64d10cab5298c63cd0fc004a94ba1f
我想在一个中心位置(以最符合语义的方式)编辑和更改许多参数,然后用于构造类、运行主程序等。 因为我不想把所有东西都放在一个文件中(它太大了,我需要模块和不同的命名空间)并声明全局变量。 不得不编辑代码来设置一些参数似乎不是一个好的解决方案。
class Example:
def __init__(self, *initial_data, **kwargs):
for dictionary in initial_data:
for key in dictionary:
setattr(self, key, dictionary[key])
for key in kwargs:
setattr(self, key, kwargs[key])
使用这样的构造函数来为 init 使用字典似乎不够透明。
这个问题有哪些可能的解决方案?它仍然是我主要使用的代码,而且相当小,所以它应该是轻量级/适合大小和仍然易于使用和舒适之间的一个很好的折衷。
【问题讨论】:
-
您可以将字典传递给
**kwargs。例如,如果您的字典名为d,您可以传递**d。是这个意思吗? -
不确定我是否正确理解您的担忧,但它是否符合此处讨论的方向:[stackoverflow.com/questions/6198372/…
标签: python configuration initialization