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

时间:2016-05-27 16:23:58

标签: function python-3.x kwargs keyword-argument

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

例如,我想编写一个函数,通过首先通过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

1 个答案:

答案 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))