Python 如何编写钩子
我是胡克的新手,所以我需要一个建议。假设我有一个函数,将一些数据作为输入并生成一个绘图:Python 如何编写钩子,python,hook,Python,Hook,我是胡克的新手,所以我需要一个建议。假设我有一个函数,将一些数据作为输入并生成一个绘图: def f(data, options): plot = produce_plot(data) apply_options(plot) # changing colors, style, ... export(plot, option.format) return plot 此函数不是由用户直接调用的,而是在循环内调用的,例如: data_categories = divide_i
def f(data, options):
plot = produce_plot(data)
apply_options(plot) # changing colors, style, ...
export(plot, option.format)
return plot
此函数不是由用户直接调用的,而是在循环内调用的,例如:
data_categories = divide_in_category(data)
for d in data_categories: f(data, color=user_option.color, format='png')
现在,我想让用户能够根据需要对该绘图进行更多操作。假设用户想要添加一个标签并进行一些匹配,我认为一个好主意是提供一个钩子来访问函数f的内部。钩子应该在导出函数之前执行。问题:怎么做?如何在吊钩内提供f的内部构件
我无法将options参数作为options.do_fit、options.add_label等处理所有无限用例
然后用户可以使用他编写的函数名调用f,这将在plot上执行某些操作并返回一个新plot。好的,我也可以将数据传递给钩子,但我想知道我是否可以更好地实现exampl的前向兼容性,例如,传递所有局部变量或提供更复杂的intereface。如果有人搜索python钩子:
def f(data, options, hook = None):
plot = produce_plot(data)
apply_options(plot) # changing colors, style, ...
if hook is not None:
plot = hook(plot)
export(plot, option.format)
return plot