我有一个脚本可以导入一个模块,该模块具有我想稍微改变的功能。假设该模块具有功能divide和run_program:
def _divide(var):
return 1/var
run_program(x):
do some stuff
_divide(x)
do more stuff
相反,我希望它这样做
def divide(var):
if var == 0:
var = 1e-131
return 1/var
run_program(x):
do some stuff
_divide(x)
do more stuff
我现在更改了模块中的功能。但是,如果我想在其他地方运行程序,我也需要更改那里的模块。因为我要更改的函数是从模块内调用的,所以我无法覆盖它(据我所知)。我可以从我的脚本中更改函数,这样我就不必更改已安装的模块吗?
编辑:模块是https://pypi.python.org/pypi/dirichlet/0.7功能是:
def _init_a(D):
'''Initial guess for Dirichlet alpha parameters given data D'''
E = D.mean(axis=0)
E2 = (D**2).mean(axis=0)
return ((E[0] - E2[0])/(E2[0]-E[0]**2)) * E