我有一个简单的函数,它是这样调用的:
arbitrary_function(**kwargs1, **kwargs2, **kwargs3)
它似乎在我的本地安装(python 3.5.1)上编译得很好,但是当我在 docker 上使用 python 3.4.5 编译它时抛出一个 SyntaxError。
我不太清楚为什么会出现这种行为。不允许使用多个 kwargs 吗?我应该在传递给函数之前将它们组合起来吗?单独传递更方便,例如:
plot(**x_axis_params, **y_axis_params, **plot_params)
代替
params = dict()
for specific_param in [x_axis_params, y_axis_params, plot_params]:
params.update(specific_param)
plot(**params)
最佳答案
这是 Python 3.5 中引入的新功能。如果您必须支持 Python 3.4,您基本上只能使用 update
循环。
对于如何将多个指令组合成一个指令,人们有自己喜欢的变体,但唯一真正对 update
循环进行重大改进的是 3.5+ 独占,因此它无助于这。 (作为引用,新的字典合并语法是 {**kwargs1, **kwargs2, **kwargs3}
。)
关于python - 函数调用中有多个 kwargs?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38860676/