Mam duży projekt składający się z dostatecznie dużej ilości modułów, każdy drukuje coś na standardowe wyjście. Teraz, gdy projekt się rozrósł, nie ma dużych. od printsprawozdań Drukowanie partii na std out, która tworzy program znacznie wolniej.
Tak więc chcę teraz zdecydować w czasie wykonywania, czy drukować cokolwiek na standardowe wyjście. Nie mogę wprowadzać zmian w modułach, ponieważ jest ich dużo. (Wiem, że mogę przekierować standardowe wyjście do pliku, ale nawet to jest znacznie powolne).
Więc moje pytanie brzmi: jak przekierować standardowe wyjście do niczego, tj. Jak sprawić, by printinstrukcja nic nie robiła?
# 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.
Obecnie jedynym pomysłem, jaki mam, jest utworzenie klasy, która ma metodę zapisu (która nic nie robi) i przekierowanie standardowego wyjścia do instancji tej klasy.
class DontPrint(object):
def write(*args): pass
dp = DontPrint()
sys.stdout = dp
Czy jest do tego wbudowany mechanizm w Pythonie? A może jest coś lepszego niż to?