我们可以使用kw
将字典转换为**kw
,但如果我希望kw
为str(kw)
而不是str(dict)
,
因为我想要一个带有code_generator关键字参数的字符串,
如果我通过
obj.method(name='name', test='test', relation = [('id','=',1)])
我想要一个函数来返回像
这样的字符串"name='name', test='test', relation = [('id','=',1)]"
答案 0 :(得分:7)
相同的语法用于接受任意关键字参数。
def somestring(**kwargs):
return ', '.join('%s=%r' % x for x in kwargs.iteritems())
请注意,dicts是任意排序的,因此结果字符串的顺序可能与传递的参数的顺序不同。
答案 1 :(得分:0)
上面的答案不能在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))