Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
通过变量名传递可选参数的Pythonic方法_Python - Fatal编程技术网

通过变量名传递可选参数的Pythonic方法

通过变量名传递可选参数的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) 有没有更像蟒蛇

很抱歉,如果这个问题有点不清楚,我不知道该怎么表达

我正在使用一个包,它有一个带有许多可选参数的函数。假设有三个参数: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)

有没有更像蟒蛇的方法?我可以把参数名分配给某个变量吗?

我会建立一个字典,将
设置为键,静态值为值。这样,您就不必进行那种笨拙的切换

例如:

setting = 'x'
kwargs = {setting: 1}
package.someFunction(**kwargs)

只需将
设置='x'
行更改为您所获得的设置。它只需要等于要将值应用到的
包.someFunction
中的参数名。

因此设置为
'x'
'z'
?太好了,谢谢@尼尔:没错。您需要将
设置为带有参数名称的字符串;您可以传递一个
dict
literal:
package.someFunction(**{setting:1})
@chepner是的,通常我会这样做。我只是把它分解一下,让每一步都更清晰。