Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/333.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如果kwargs密钥传递,如何附加字符串_Python_Python 3.x_Python 3.6 - Fatal编程技术网

Python 如果kwargs密钥传递,如何附加字符串

Python 如果kwargs密钥传递,如何附加字符串,python,python-3.x,python-3.6,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') 如果关键字args中给出了“a”,则使用获取该值。如果不存在,则默认返回值为': 第一个赋值从di

我有更好的pythonic方法来编写以下代码吗?我要做的是,若函数将键参数作为“a”传递,那个么将一些字符串附加到值,否则只传递空字符串

def testFunc(**kwargs):
    b = '' if not 'a' in kwargs else '//{}'.format(kwargs['a'])
    print(b)
testFunc()
testFunc(a='this')
如果关键字args中给出了“a”,则使用获取该值。如果不存在,则默认返回值为
'

第一个赋值从dict中获取
'a'
,并将其赋值给
b
。然后,如果
b
为非空(
'
),则使用
'/'
重新格式化


编辑:我假设如果kwargs中没有提供“a”,而是空的(
'
),那么
b
也将是空的,而不仅仅是“/”。在当前代码中,如果提供了
'a'
且为空,则
b
将变为
'/'
。如果希望空的或缺少的
a
都会导致
b
的空字符串,请使用我的版本。否则,您的版本就可以了-但是更改为
。。。如果“a”不在kwargs else中…
就像Martin在评论中说的那样。

如果
a
没有提供,原始代码会产生
b='
而不是
b='/'
。是的,如果a没有提供,我喜欢传递b作为空字符串,如果a存在,那么Kwargsy的b='/'+变量如果调用方提供
a=''
@user2357112,那么我们的新修订版仍然有不同的行为。我认为,如果没有提供或为空,那么
b
也将是空的,而不仅仅是
'/'
。如果您只对
a
参数感兴趣,那么您为什么要接受kwargs呢?为什么不能将
a
设为正常参数?一些上下文可能会有所帮助。这只是一个简单的代码,我的函数中有更多的逻辑实际上
。。。如果“a”不在kwargs中
else…`,那么这里就没有什么可以改进的了。
b = kwargs.get('a', '')
if b:
    b = '//{}'.format(b)