J'ai un grand projet composé d'un nombre suffisamment grand de modules, chacun imprimant quelque chose à la sortie standard. Maintenant que le projet a pris de l'ampleur, il n'y en a pas. des print
déclarations s'impriment beaucoup sur le std, ce qui a considérablement ralenti le programme.
Donc, je veux maintenant décider au moment de l' exécution s'il faut ou non imprimer quelque chose sur le stdout. Je ne peux pas faire de changements dans les modules car ils sont nombreux. (Je sais que je peux rediriger la sortie standard vers un fichier, mais même cela est considérablement lent.)
Ma question est donc de savoir comment rediriger la sortie stdout vers rien, c'est-à-dire comment faire en sorte que l' print
instruction ne fasse rien?
# 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.
Actuellement, la seule idée que j'ai est de créer une classe qui a une méthode d'écriture (qui ne fait rien) et de rediriger le stdout vers une instance de cette classe.
class DontPrint(object):
def write(*args): pass
dp = DontPrint()
sys.stdout = dp
Existe-t-il un mécanisme intégré en python pour cela? Ou y a-t-il quelque chose de mieux que ça?