我有两个程序。第一个程序中的函数返回一些消息并包含许多print
个。因此,我将第一个程序函数导入第二个程序并使用返回值。但是,我也需要第一个程序的print
s。我怎么能得到它们?
仅供参考我无法在回报中附加print
个值。有没有办法获得程序使用的所有打印件?
示例代码:
第一个program1.py
class Test():
def first(self,name):
print "first print"
print "second print"
print "third print"
#do some thing..
return {"sucess":"end result"}
第二个program2.py
from firstprog import Test
result = Test().first("testing")
return result + "first program prins here"
答案 0 :(得分:0)
您可以将sys.stdout
作为自己的StringIO
对象进行修补。
import StringIO
import sys
def my_function():
print("foo")
return 5
stdout = sys.stdout
sys.stdout = my_stdout = StringIO.StringIO()
result = my_function()
sys.stdout = stdout
print(my_stdout.getvalue()) # prints foo
print(result) # prints 5