나는 충분히 많은 수의 모듈로 구성된 큰 프로젝트를 가지고 있으며, 각각은 표준 출력으로 무언가를 인쇄합니다. 이제 프로젝트의 규모가 커짐에 따라 더 큰 프로젝트가 없습니다. 의print
상당히 느린 프로그램을 만들었습니다 표준 출력에 많이 인쇄 문.
따라서 런타임 에 stdout에 아무것도 인쇄할지 여부 를 결정하려고합니다 . 모듈이 많기 때문에 모듈을 변경할 수 없습니다. (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.
현재 내가 가진 유일한 아이디어는 write 메소드 (아무것도하지 않음)가있는 클래스를 만들고 stdout 을이 클래스의 인스턴스로 리디렉션하는 것입니다.
class DontPrint(object):
def write(*args): pass
dp = DontPrint()
sys.stdout = dp
파이썬에 내장 메커니즘이 있습니까? 아니면 이것보다 더 좋은 것이 있습니까?