Suppress output to stdout/stderr in InteractiveInterpreter

Dave W. evadeflow at
Thu Apr 15 15:56:09 EDT 2010

> > I thought I could get away with importing print_function
> > from __future__ ... but my re-pointed print function never gets
> > called.

> -snip-

> >    def __enter__(self):
> >        print = self.printhook

> That redefines the print function local to __enter__.  You need to
> change the global value of print.

Thanks for the clue.  I had actually tried using 'global print' in
the __enter__ function, but it broke my tests even worse so I
figured I must not need it. :-} After your reply, I went back and
discovered that everything was actually working fine with 'global'
in place---except my automated tests break.  So I just have a little
mystery to solve regarding how execution using nose differs from
running the app manually.

> from contextlib import contextmanager

Hey, thanks for that gem!  I didn't know about this clever little
module---really useful!

More information about the Python-list mailing list