嵌套Python kwargs

时间:2015-10-08 22:28:37

标签: python kwargs

在字典中嵌套kwargs是否有害?我已经使用过这种技术几次,主要是当我有一长串的调用者并且如果我在调用者列表中进行一次更改时,他们试图避免改变所有的参数。什么是更安全的替代方案(例如,baz_kwargs词典中的拼写错误bar_kwargs将无声地失败),这使我可以保持一些易于配置的安全性?

def baz(mx, n = 10, delim = '|'):
    print '{}'.format(delim).join([str(mx)]*n)

def bar(mx, double = False, baz_kwargs = {}, **my_kwargs):
    if double:
        mx *= 2
    baz(mx, **baz_kwargs)

def foo(a, b = 1, bar_kwargs = {}):
    bar(b * a, **bar_kwargs)

if __name__ == '__main__':
     bar_kwargs = {'double' : True,
              'baz_kwargs' : {'delim' : '|'}}
     foo(10, b = 2, bar_kwargs = bar_kwargs)

0 个答案:

没有答案