十分な数のモジュールで構成される大きなプロジェクトがあり、それぞれが標準出力に何かを出力しています。現在、プロジェクトの規模が大きくなっているため、規模は大きくありません。printかなり遅いプログラムを作ったのstdうちに多くのことを印刷するステートメント。
そこで、実行時に標準出力に何かを出力するかどうかを決定したいと思います。モジュールがたくさんあるので、モジュールを変更することはできません。(私はstdoutをファイルにリダイレクトできることを知っていますが、これでもかなり遅いです。)
だから私の質問は、どのようにstdoutを何にもリダイレクトprintしないことです。
# I want to do something like this.
sys.stdout = None # this obviously will give an error as Nonetype object does not have any write method.
現在私が持っている唯一のアイデアは、writeメソッド(何もしない)を持つクラスを作成し、stdoutをこのクラスのインスタンスにリダイレクトすることです。
class DontPrint(object):
def write(*args): pass
dp = DontPrint()
sys.stdout = dp
これにはPythonに組み込みのメカニズムがありますか?それともこれより良いものはありますか?