每次我在Python中调用一个函数时,都会改变不同的参数

问题描述 投票:2回答:1

我有一个功能

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包含ab的值,另一次parameter_variation包含cd的值。

什么是最好/最干净/ Pythonic的方式来做到这一点?或者使用kwargs也许更好?

python input kwargs
1个回答
3
投票

您可以像这样使用kwargs

def some_func(**kwargs):
    my_dict = dict(
        a=1,
        b=2,
        c=3,
        d=4
    )
    my_dict.update(**kwargs)

这将设置您的默认值,然后使用kwargs覆盖它们。

通过简单地使用默认参数,可以更好地为dict提供更多有限的输入:

def some_func(a=1, b=2, c=3, d=4):
    my_dict = dict(
        a=a,
        b=b,
        c=c,
        d=d
    )

这样更安全,让您的意图对于阅读代码的人来说更容易理解。但与kwargs相比,灵活性较低。

© www.soinside.com 2019 - 2024. All rights reserved.