1

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

1 に答える 1