Различные параметры каждый раз, когда я вызываю функцию в Python - PullRequest
0 голосов
/ 01 марта 2019

У меня есть функция

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?

1 Ответ

0 голосов
/ 01 марта 2019

Вы можете использовать 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.

...