在使用python調用函數時,想將函數中的print輸出禁止掉又不想改函數的代碼,可以定義如下HiddenPrints類解決:
class HiddenPrints:
def __enter__(self):
self._original_stdout = sys.stdout
sys.stdout = open("", 'w')
def __exit__(self, exc_type, exc_val, exc_tb):
sys.stdout.close()
sys.stdout = self._original_stdout
我們只需要將想要隱藏打印的函數,在with HiddenPrint(): 作用域下使用即可:
with HiddenPrints():
function()