我有更好的pythonic方式来编写以下代码吗?我想要做的是,如果函数将键参数传递为' a',则将一些字符串附加到值,否则只传递空字符串
def testFunc(**kwargs):
b = '' if not 'a' in kwargs else '//{}'.format(kwargs['a'])
print(b)
testFunc()
testFunc(a='this')
答案 0 :(得分:-1)
使用dict.get()
获取' a'如果在关键字args中给出。如果它不存在,则默认返回值为''
:
b = kwargs.get('a', '')
if b:
b = '//{}'.format(b)
第一个作业从字典中获取'a'
并将其分配给b
。然后,如果b
非空(''
),则使用'//'
重新格式化。
编辑:我认为如果' a'在kwargs中没有提供但是为空(''
),那么b
也将为空,而不仅仅是' //'。在您当前的代码中,如果提供的'a'
为空,则b
变为'//'
。如果您想要空{或1}} a
两者都导致b
的空字符串,那么请使用我的版本。否则,你的版本很好 - 但是当MartinP在评论中添加... if 'a' not in kwargs else ...
时。