如何从 python 子例程中捕获 stdio?
我有以下代码:
def fsub():
print 'OK'
def fmain():
a = fsub()
fmain()
显然 fsub()
不会返回“OK”并分配给 fmain()
中的 a
。然而,这就是我想要的。无论如何,我们是否可以不改变fsub()
?
I have the following codes:
def fsub():
print 'OK'
def fmain():
a = fsub()
fmain()
Apparently fsub()
won't return 'OK' and assign to a
in fmain()
. However, this is what I want. Is there anyway we can make it without changing fsub()
?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
当您执行
a = fsub()
时,您正在尝试将a
返回到fsub()
,在本例中是无
(因为fsub()
不返回任何内容)。正确的做法是将 stdout 重定向到文件,然后调用 fsub() 函数,并将 stdout 重定向回原始 stdout:
结果:
When you do
a = fsub()
, you're trying to assinga
the return offsub()
, in this caseNone
(becausefsub()
doesn't return anything).The correct thing to do is to redirect the stdout to a file, then call the
fsub()
function, and the redirect back the stdout to the original stdout:Result: