我们可以将字典转换为kw
使用**kw
,但如果我不想要,kw
因为我想要一个带有 code_generator 关键字参数的字符串,str(kw)
str(dict)
如果我通过
obj.method(name='name', test='test', relation = [('id','=',1)])
我想要一个函数来返回字符串
"name='name', test='test', relation = [('id','=',1)]"
我们可以将字典转换为kw
使用**kw
,但如果我不想要,kw
因为我想要一个带有 code_generator 关键字参数的字符串,str(kw)
str(dict)
如果我通过
obj.method(name='name', test='test', relation = [('id','=',1)])
我想要一个函数来返回字符串
"name='name', test='test', relation = [('id','=',1)]"
相同的语法用于接受任意关键字参数。
蟒蛇2:
def somestring(**kwargs):
return ', '.join('%s=%r' % x for x in kwargs.iteritems())
蟒蛇 3:
def somestring(**kwargs):
return ", ".join(f"{key}={value}" for key, value in kwargs.items())
请注意,dicts 是任意排序的,因此结果字符串的顺序可能与传递的参数不同。
上面的答案不能在python 2.7.16上正常运行,应该是
def somestring(**kwargs):
return ''.join([('%s=%s' % x) for x in kwargs.iteritems()])
#A full example:
def RunCommandAndEnsureZero(*args, **kwargs):
retCode = RunCommand(*args, **kwargs)
if retCode != 0:
kwargsString = ''.join([('%s=%s' % x) for x in kwargs.iteritems()])
raise Exception("error command: \"%s %s\"" % (''.join(args), kwargsString))