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

piy*_*iyo 1 python keyword-argument

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

def foo(a=5, b=10, c=15)
Run Code Online (Sandbox Code Playgroud)

假设我还有一个变量x,其值为'a','b'或'c'.实际上,我想要做的是:

foo(**{x: 7})
Run Code Online (Sandbox Code Playgroud)

但似乎可能有一种更直接的方式来做到这一点.我的怀疑是否正确?

aba*_*ert 6

每当你想做一些通常是静态的动态时,Python通常会强迫你明确它(因为显式优于隐式).

因此,在这种情况下,是的,foo(**{x: 7})可能是编写它的最pythonic方式.