我有一个功能
def input_definition(parameter_variation=None):
input_def = {}
input_def['a'] = 1
input_def['b'] = 2
input_def['c'] = 3
...
input_def['z'] = 26
# Apply the parameter variation by means of the input argument 'parameter_variation'.
# ...
# Save 'input_def' to external file with dill module.
# ...
具有许多参数。我想通过将parameter_variation
赋予函数input_definition
来改变其中一些参数。每次调用input_definition
时,我都需要更改不同的参数。
因此,一次parameter_variation
包含a
和b
的值,而另一次parameter_variation
包含c
和d
的值。
什么是最好/最整洁/ Pythonic的方法?还是使用kwargs更好?
答案 0 :(得分:3)
您可以像这样使用kwargs
:
def some_func(**kwargs):
my_dict = dict(
a=1,
b=2,
c=3,
d=4
)
my_dict.update(**kwargs)
这将设置您的默认值,然后用kwargs覆盖它们。
通过简单地使用默认参数,像这样为字典提供更多有限的输入是有争议的:
def some_func(a=1, b=2, c=3, d=4):
my_dict = dict(
a=a,
b=b,
c=c,
d=d
)
这更安全,并使阅读代码的人更容易理解您的意图。但是与kwargs
相比,灵活性较差。