1. ホーム
  2. python

[解決済み] 印刷のための通話をブロックするには?

2022-11-30 20:39:48

質問

ある関数が、その関数を呼び出さないようにする方法はありますか? print ?


私は pygame.joystick モジュールを使用しています。

を作成しました。 pygame.joystick.Joystick オブジェクトを作成し、ゲームの実際のループの中でそのメンバ関数を呼び出します。 get_button を呼び出して、ユーザーの入力をチェックします。この関数は必要なことはすべて行いますが、問題は、この関数が print を呼び出すので、ゲームがかなり遅くなることです。

Can I ブロック へのこの呼び出しを print ?

どのように解決するのですか?

Python では、標準出力 (stdout) を任意のファイルオブジェクトで上書きすることができます。 これはクロスプラットフォームで動作し、NULLデバイスに書き込まれるはずです。

import sys, os

# Disable
def blockPrint():
    sys.stdout = open(os.devnull, 'w')

# Restore
def enablePrint():
    sys.stdout = sys.__stdout__


print 'This will print'

blockPrint()
print "This won't"

enablePrint()
print "This will too"

もし、その関数を表示させたくない場合は blockPrint() をその前に呼び、さらに enablePrint() である。 もし 全て を無効にしたい場合は、ファイルの先頭でブロックを開始します。