将默认值与kwargs合并,是否有更好的语法?

时间:2017-12-03 00:14:03

标签: python

我有一个接受变量参数的方法,并将用户提供的选项与默认选项合并,例如

def run(domain, **kwargs):
    options = {'opt1': 'abc', 'opt2': 'def'}

    if 'opt1' in kwargs:
        options['opt1'] = kwargs['opt1']
    if 'opt2' in kwargs:
        options['opt2'] = kwargs['opt2']

有没有比这更好的写作?

1 个答案:

答案 0 :(得分:1)

您可以使用词典理解:

def run(domain, **kwargs):
  options = {'opt1': 'abc', 'opt2': 'def'}
  options = {a:kwargs.get(a, b) for a, b in options.items()}