我想编写一个函数,将不同的关键字参数传递给不同的函数。
例如,我想编写一个函数,通过首先通过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
答案 0 :(得分:2)
如果不确切地知道委托给每个函数的哪个关键字参数**keywords
在这种情况下不起作用,您可以将每个函数的关键字两个字典作为参数:
def plot_hist(data, kwargs_hist={}, kwargs_gca={}):
ax = plt.gca(**kwargs_gca)
fig = ax.hist(data, **kwargs_hist)[0]
return fig
然后创建单独的词典,关键字语法仍然可以通过将它们传递给dict
构造函数来使用:
plot_hist(DATA, dict(hist_arg=3, foo=6), dict(gca_arg=1, bar = 4))