通过变量名传递可选参数的Pythonic方法
很抱歉,如果这个问题有点不清楚,我不知道该怎么表达 我正在使用一个包,它有一个带有许多可选参数的函数。假设有三个参数:x,y,z。我将始终传递相同的值,只是传递给不同的参数。所以我可以这样做:通过变量名传递可选参数的Pythonic方法,python,Python,很抱歉,如果这个问题有点不清楚,我不知道该怎么表达 我正在使用一个包,它有一个带有许多可选参数的函数。假设有三个参数:x,y,z。我将始终传递相同的值,只是传递给不同的参数。所以我可以这样做: if setting is x: package.someFunction(x=1) elif setting is y: package.someFunction(y=1) elif setting is z: package.someFunction(z=1) 有没有更像蟒蛇
if setting is x:
package.someFunction(x=1)
elif setting is y:
package.someFunction(y=1)
elif setting is z:
package.someFunction(z=1)
有没有更像蟒蛇的方法?我可以把参数名分配给某个变量吗?我会建立一个字典,将
设置为键,静态值为值。这样,您就不必进行那种笨拙的切换
例如:
setting = 'x'
kwargs = {setting: 1}
package.someFunction(**kwargs)
只需将设置='x'
行更改为您所获得的设置。它只需要等于要将值应用到的包.someFunction
中的参数名。因此设置为'x'
或'z'
?太好了,谢谢@尼尔:没错。您需要将设置为带有参数名称的字符串;您可以传递一个dict
literal:package.someFunction(**{setting:1})
@chepner是的,通常我会这样做。我只是把它分解一下,让每一步都更清晰。