関数をグローバルに一時的に無効にするコンテキストマネージャーをPythonで作成したいと思います。そのようなことは一般的に行うことができますか?望ましい動作の例を次に示します。
#in module x
def disable_me(): print "do stuff"
#in module y
import x
def run_me():
print "run_me"
x.disable_me()
#in module z
import x
import y
with disable_function(x.disable_me):
y.run_me()
#desired output: run_me
lambda *args, **kwargs: None
原則として、一時的に割り当てることができることは知っていx.disable_me
ますが、コンテキストマネージャーが実際にこれを行うのに十分な情報を持っているかどうかはわかりません。