У меня большой проект, состоящий из достаточно большого количества модулей, каждый из которых печатает что-то на стандартный вывод.Сейчас, когда проект вырос в размерах, таких крупных нет.из print
операторов, печатающих много на std out, что сделало программу значительно медленнее.
Итак, теперь я хочу решить в runtime , печатать ли что-либо на 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.
В настоящее время единственная идея, которую я имею, состоит в том, чтобы создать класс с методом записи (который ничего не делает) и перенаправить стандартный вывод на экземпляр этого класса.
class DontPrint(object):
def write(*args): pass
dp = DontPrint()
sys.stdout = dp
Есть ли в Python встроенный механизм для этого?Или есть что-то лучше этого?