我有一个关键字参数函数:
def f1(**kw):
for key,val in kw.iteritems():
print "key=%s val=%s" % (key,val)
f1(Attr1 = "Val1", Attr2 = "Val2") # works fine.
f1(Attr1-SubAttr = "Val1", Attr2 = "Val2") # complains about keyword being an expression.
f1("Attr1-SubAttr" = "Val1", Attr2 = "Val2") # doesn't work either.
如何传递带有连字符的关键字?我无法控制这些关键字,因为我是从现有的遗留数据库中解析这些关键字。
最佳答案
关键字参数必须是valid Python identifiers ;这些不允许 -
因为它是为减法保留的。
您可以使用 **kwargs
variable keyword argument syntax 传入任意字符串相反:
f1(**{"Attr1-SubAttr": "Val1", "Attr2": "Val2"})
关于python - 使用连字符传递关键字参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24121279/