hir*_*ist 8 python stdout python-3.x python-internals
我可以这样沉默和恢复sys.stdout
:
import sys
sys.stdout = None
print('hello') # does not write to stdout
sys.stdout = sys.__stdout__
print('hello') # writes to stdout
Run Code Online (Sandbox Code Playgroud)
我知道我最好使用contextlib.redirect_stdout
它可能做类似的事情,但我的问题是:为什么上面的代码工作?
我已经假设python会调用类似的东西sys.stdout.write()
,无论我替换sys.stdout
它应该至少有一个write
方法(例如io.StringIO
).
use*_*ica 12
/* sys.stdout may be None when FILE* stdout isn't connected */
if (file == Py_None)
Py_RETURN_NONE;
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
196 次 |
最近记录: |