7

我们可以将字典转换为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)]"
4

2 回答 2

12

相同的语法用于接受任意关键字参数。

蟒蛇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 是任意排序的,因此结果字符串的顺序可能与传递的参数不同。

于 2010-05-10T12:09:13.217 回答
1

上面的答案不能在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))
于 2019-12-21T03:06:09.193 回答