【发布时间】:2016-05-27 16:23:58
【问题描述】:
我想写一个函数,将不同的关键字参数传递给不同的函数。
例如,我想编写一个函数,通过首先通过gca 创建轴然后通过hist 添加直方图来绘制我的数据的直方图。我希望用户能够将额外的关键字参数传递给gca 和hist。
我正在寻找这样的东西(定义行中的语法错误),
import matplotlib.pyplot as plt
def plot_hist(data, **kwargs_hist, **kwargs_gca):
ax = plt.gca(**kwargs_gca)
fig = ax.hist(data, **kwargs_hist)[0]
return fig
【问题讨论】:
-
python 如何知道将哪些关键字传递给每个函数?特别是考虑到
inspect.signature(plt.gca) -> <Signature (**kwargs)> -
是什么定义了关键字参数的去向?
-
@tadhg 这正是我要解决的问题。我能完成这样的事情吗?
-
@zondo 我希望用户决定将哪些可选参数传递给
hist,哪些传递给gca -
好吧,您可以让用户传递两个字典而不是关键字,然后您可以将其称为
plot_hist(DATA, dict(var1=1, var2=2), dict(var3=3, var4=4))并删除定义行中的**。
标签: function python-3.x keyword-argument