少し変更したい機能を持つモジュールをインポートするスクリプトがあります。モジュールに関数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