x = eval(repr(sys.stdout)) ?
phr-n2002b at NOSPAMnightsong.com
Wed Aug 7 12:57:40 CEST 2002
Robert McLay <mclay at cfdlab.ae.utexas.edu> writes:
> So the question is: Is there a way to save a "pointer" to a variable in
> python so that it can be set latter?
> and foo is now 2. Is there something that can do this in python?
No not really in full generality, unless you count exec/eval.
For what you describe, you could use a closure:
old_stream = sys.stdout
sys.stdout = new_stream
sys.stdout = old_stream
and then to do your redirection:
restore = temp_redirect(open("whatever","w")) # redirects stdout
and then when you're done:
resets sys.stdout to its old value.
More information about the Python-list