У мене великий проект, що складається з достатньо великої кількості модулів, кожен з яких друкує щось до стандартного виходу. Зараз, коли проект збільшився, великих немає. зprint заяв друку багато на станд відмови , який зробив програму значно повільніше.
Отже, тепер я хочу , щоб вирішити , на час виконання або не друкувати нічого на стандартний висновок. Я не можу вносити зміни в модулі, оскільки їх досить багато. (Я знаю, що можу перенаправити 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.
В даний час єдина у мене ідея - створити клас, який має метод запису (який нічого не робить) і перенаправити stdout до екземпляра цього класу.
class DontPrint(object):
def write(*args): pass
dp = DontPrint()
sys.stdout = dp
Чи є вбудований механізм у python для цього? Або є щось краще, ніж це?