python - 使用连字符传递关键字参数

标签 python keyword-argument hyphenation

我有一个关键字参数函数:

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/

相关文章:

python - 在 virtualenv 中使用 pip 安装 pyaudio

python - Django 表单集 - 空 kwargs

HTML:没有破折号的软连字符()?

python - 将类型实例转换为字典

python - 如何在 matplotlib 中标记一个点

python - kwargs/args 错误。将参数传递给 apscheduler 处理函数

python - 使用 super() 继承关键字参数,但只有在创建实例时指定时才会列出它们

iphone - 如何使用stringWithFormat将连字符动态添加到我的字符串中

html - 如何防止 html div 中的断字(连字符)?

python - 具有多处理的超时装饰器类会产生酸洗错误