Python 传递包含关键字字符串的变量的关键字参数

Python 传递包含关键字字符串的变量的关键字参数,python,keyword-argument,Python,Keyword Argument,假设我有一个具有此签名的函数: def foo(a=5, b=10, c=15) 假设我还有一个变量x,它的值是‘a’、‘b’或‘c’。实际上,我想做的是: foo(**{x: 7}) 但似乎有一种更直接的方法可以做到这一点。我的怀疑正确吗?每当你想做一些通常是静态的动态的事情时,Python通常会强迫你对它进行明确的描述(因为) 因此,在本例中,是的,foo(**{x:7})可能是最具Python风格的编写方式。每当您想做一些通常是静态的动态操作时,Python通常会强制您对其进行显式说明

假设我有一个具有此签名的函数:

def foo(a=5, b=10, c=15)
假设我还有一个变量x,它的值是‘a’、‘b’或‘c’。实际上,我想做的是:

foo(**{x: 7})

但似乎有一种更直接的方法可以做到这一点。我的怀疑正确吗?

每当你想做一些通常是静态的动态的事情时,Python通常会强迫你对它进行明确的描述(因为)


因此,在本例中,是的,
foo(**{x:7})
可能是最具Python风格的编写方式。

每当您想做一些通常是静态的动态操作时,Python通常会强制您对其进行显式说明(因为)


因此,在本例中,是的,
foo(**{x:7})
可能是最具python风格的编写方式。

这首先不是一个有效的函数签名。@abarnert签名有什么问题,我看不出来it@eyquem:那是因为他在我写那篇评论后编辑的。它最初有类似于
def foo('a'=5,'b'=10,'c'=15)
,这在两个方面是错误的。他已经修好了(但最后的冒号还是漏掉了…。@abarnert谢谢。但我没有看到“编辑”的标签,这就是为什么我想知道。我仍然没有看到它,我不知道别人是否看到它。@eyquem:所以实际上并没有跟踪所有编辑;有一个宽限期,在此期间编辑被合并在一起(为了合并的目的,原始的后期统计作为编辑)。这就是为什么我所有的答案通常只显示历史记录中的1到2次编辑,尽管编辑了78次左右以修复愚蠢的打字错误或断开的链接。:)这不是一个有效的函数签名。@abarnert签名有什么问题,我看不出来it@eyquem:那是因为他在我写那篇评论后编辑的。它最初有类似于
def foo('a'=5,'b'=10,'c'=15)
,这在两个方面是错误的。他已经修好了(但最后的冒号还是漏掉了…。@abarnert谢谢。但我没有看到“编辑”的标签,这就是为什么我想知道。我仍然没有看到它,我不知道别人是否看到它。@eyquem:所以实际上并没有跟踪所有编辑;有一个宽限期,在此期间编辑被合并在一起(为了合并的目的,原始的后期统计作为编辑)。这就是为什么我所有的答案通常只显示历史记录中的1到2次编辑,尽管编辑了78次左右以修复愚蠢的打字错误或断开的链接。:)