共有ライブラリによって作成されたオブジェクトのコンストラクターの出力を /dev/null にリダイレクトしようとしています。建設の副作用は、私が必要としないたくさんのがらくたを印刷することです。コードは次のとおりです。
f = open("/dev/null", 'w')
tmpErr = sys.stderr
tmpOut = sys.stdout
sys.stderr = f
sys.stdout = f
foo = Foo(param1, param2)
sys.stderr = tmpErr
sys.stdout = tmpOut
f.close()
関数呼び出しを単純な出力 (たとえば、"hello" の出力) またはローカル関数の呼び出しに置き換えると、リダイレクトが機能するように見えます。また、シェル (tcsh) で ">&" 演算子を使用して、すべての出力を完全にリダイレクトすることができました。
ここで何が欠けていますか?