【发布时间】:2016-03-11 08:56:33
【问题描述】:
是否可以简化kwargs 选项的布尔检查?
例如在foo 我必须检查很多选项:
def foo(*args, **kwargs):
if 'foo' in kwargs and kwargs['foo'] is True:
do_something()
if 'bar' in kwargs and kwargs['bar'] is True:
do_something_else()
...
一种可能的解决方法是通过添加更多复杂性来隐藏一些复杂性...
def parse_kwargs(kwords, **kwargs):
keywords = {}
for kw in kwords:
keywords[kw] = True if kw in kwargs and kwargs['kw'] is True else False
return keywords
然后在我的主函数中:
def foo(*args, **kwargs):
kw = parse_kwargs(**kwargs)
if kw['foo']:
do_something()
if kw['bar']:
do_something_else()
...
我想知道我是否可以使用更简单的方法来减少样板......
【问题讨论】:
-
if kwargs.get('foo'):