如果kwargs键传递,如何追加字符串

时间:2017-08-21 20:43:49

标签: python python-3.x python-3.6

我有更好的pythonic方式来编写以下代码吗?我想要做的是,如果函数将键参数传递为' a',则将一些字符串附加到值,否则只传递空字符串

def testFunc(**kwargs):
    b = '' if not 'a' in kwargs else '//{}'.format(kwargs['a'])
    print(b)
testFunc()
testFunc(a='this')

1 个答案:

答案 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 ...时。