如何编写将不同关键字参数传递给不同函数的函数
How to write a function that passes different key word arguments to different functions
我想编写一个函数,将不同的关键字参数传递给不同的函数。
例如,我想编写一个函数来绘制我的数据的直方图,首先通过 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
如果不知道要委托给每个函数的确切关键字参数,**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))
我想编写一个函数,将不同的关键字参数传递给不同的函数。
例如,我想编写一个函数来绘制我的数据的直方图,首先通过 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
如果不知道要委托给每个函数的确切关键字参数,**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))