我试图找出一种方法来循环遍历 json 配置文件并使用键名作为使用 **kwargs 的方法的参数名称。我创建了一个 json 配置文件并使用键名作为方法。我只是将“set_”附加到键名来调用正确的方法。我将 json 转换为字典以遍历任何默认值。我想通过字符串变量将参数名称传递给 **kwargs。我试图通过字典,但它似乎不喜欢那样。
user_defaults = config['default_users'][user]
for option_name, option_value in user_defaults.iteritems():
method = "set_" + option_name
callable_method = getattr(self, method)
callable_method(user = user, option_name = user_defaults[option_name])
调用上面的 callable_method 传递“option_name”作为 kwarg 的实际名称。我想传递它,以便当“shell”= option_name 它作为参数名称的字符串名称传递时。下面是一个例子。这样我就可以遍历配置中的任何键,而不必担心我在为完成某件事而编写的任何方法中要查找的内容。
def set_shell(self, **kwargs):
user = kwargs['user']
shell = kwargs['shell']
## Do things now with stuff
感谢任何帮助我是python的新手,并且仍在学习如何以pythonic的方式做事。