Перенаправление стандартного вывода в «ничего» в PythonPython

Программы на Python
Anonymous
Перенаправление стандартного вывода в «ничего» в Python

Сообщение Anonymous »

У меня есть большой проект, состоящий из достаточно большого количества модулей, каждый из которых что-то выводит на стандартный вывод. Теперь, когда проект увеличился в размерах, крупных проектов нет. операторов print выводится много на стандартный вывод, что значительно замедляет работу программы.

Итак, теперь я хочу решить во время выполнения, следует ли печатать что-либо на стандартный вывод. Я не могу вносить изменения в модули, так как их много. (Я знаю, что могу перенаправить стандартный вывод в файл, но даже это происходит значительно медленно.)

Поэтому мой вопрос заключается в том, как мне перенаправить стандартный вывод в ничто, т.е. как заставить оператор 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 для этого встроенный механизм? Или есть что-то лучше этого?

Вернуться в «Python»