如何编写将不同关键字参数传递给不同函数的函数

How to write a function that passes different key word arguments to different functions

我想编写一个函数,将不同的关键字参数传递给不同的函数。

例如,我想编写一个函数来绘制我的数据的直方图,首先通过 gca 创建轴,然后通过 hist 添加直方图。我希望用户能够将额外的关键字参数传递给 gcahist

我正在寻找类似这样的东西(定义行中的语法错误),

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

如果不知道要委托给每个函数的确切关键字参数,**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))